Soket paketi çatallı senaryoya nereye gitti?

Bir A işleminin ve A işleminin, A'nın TCP istemcisi olarak davranması, B'nin TCP sunucusu olarak davranması ve A'nın B'ye bağlanması, A'daki soketin dosya tanıtıcısının fd1 (A) ve dosya tanıtıcısının B, fd2'dir, bu noktada, A işleminde C, C adında bir alt işlem başlatılmış, aynı zamanda fd1 (A) ile aynı dosya tablosuna işaret eden fd1 (C) değerine sahiptir, şimdi B bir şeyi fd2'ye yazar ve bu süreç , A veya C, mesajı alacak mı? Mesaj fd1'e (A) teslim edilecek mi? veya fd1 (C)? ya da rastgele mi? Teşekkür ederim.

0

1 cevap

Mesaj ilk önce hangi işlemin okunduğuna gidecektir. A, C başka bir şey yapmakla meşgulken read() veya recv() komutunu çalıştırırsa, A verileri alır ve bunun tersi de geçerlidir. Hem A hem de C, read() veya recv() işlevini aynı anda yürütürse, sonuç tanımsızdır.

0
katma
Tamam, bu doğru cevap sanırım
katma yazar wangshuaijie, kaynak