C gönderilen ve alınan farklı

Katılım
18 Aralık 2018
Mesajlar
9.047
Makaleler
14
Çözümler
128
Yer
Dubai
Merhaba, TCP ile C'de gönderip alınanı yazdırıyorum ancak alınan genelde son gönderilenin bir kısmı değişerek yazdırılıyor. Sorunun nerede gerçekleştiğini buldum ancak sebebini anlayamadım.

Sorun benim yazdığım şu fonksiyondan kaynaklanıyor;
C:
void strprintln(const char * str) {
    write(1, str, strlen(str));
    write(1, "\n", 1);
}

Eğer bu fonksiyonu kullanmak yerine write fonksiyonunu olduğu gibi kullanırsam alınanlar olduğu gibi yazdırılıyor ancak bu fonksiyonda bir önceki mesajı da yazdırıyor. Aşağıya kendi fonksiyonumla çıktıları ve normal çıktıları bıraktım.
Server çıktısı;
1673814232823.png

Client çıktısı;
1673814258894.png


Olması gereken çıktı;
1673814637674.png
 
Write'ı nasıl kullanıyorsam aynı şekilde. Garip bir şekilde bildirim almamışım mesajına dair.

strprintln(buf); gibi.

C:
char data[1024];
int size = recv(sock, data, 1024, 0);
strprintln(data);

Write kullanırken adresini yollayıp deneyebilir misiniz?
 

Technopat Haberler

Yeni konular

Geri
Yukarı