[程式] 請教一個socket的問題???

看板C_Sharp作者 (~咖啡癮君子~)時間17年前 (2009/04/05 18:24), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串1/1
dear all: 小弟我最近寫一個socket程式去接收perl程式所傳來的字串,每一次傳都是小筆的而且 長度絕對不會超過100,但卻出現過單次傳輸C#這邊接到的buf是滿的,至於多出來的內容 看起來似乎是之前傳過的data(這點無法實際比對), 每一次傳的資料大小絕對小於100,但居然會出現滿滿的512長度,後來我在perl 改成每隔一秒傳一次資料問題就不見了??? 不曉得是不是socket用於自己電腦上的傳輸是不是參數需要調整,或是剛好當時 兩個程式同時傳輸資料導致buf滿了,但是就算如此根據我傳的資料也不至於大於512 而且buf的狀況是會慢慢累積不是一次到512的byte 不曉得有沒有人曉得可能是出問題 感謝喔 C#: string ip = "127.0.0.1"; int port = 1235 IPEndPoint ipp = new IPEndPoint(IPAddress.Parse(ip), port); Socket CM = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); CM.Bind(ipp); CM.Listen(1); Socket server = CM.Accept(); byte[] buf = new Byte[512]; server.Receive(buf); perl: $MySocket=new IO::Socket::INET->new(PeerPort=>1235,Proto=>"tcp" ,PeerAddr=>'localhost',Type=>SOCK_STREAM ) or die print"can't connect CM\n" ; $MySocket->send($data); -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.166.131.63

04/06 00:17, , 1F
傳封包的時候要sleep 不然傳太快 (本地)接收端處理不來
04/06 00:17, 1F
文章代碼(AID): #19s8RXWj (C_Sharp)