作者albertliao (~咖啡瘾君子~)
看板C_Sharp
标题[程式] 请教一个socket的问题???
时间Sun Apr 5 18:24:32 2009
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
1F:推 joefaq:传封包的时候要sleep 不然传太快 (本地)接收端处理不来 04/06 00:17