首页 新闻 搜索 专区 学院

Socket.Receive接收不到数据

0
悬赏园豆:15 [待解决问题]

运行程序,Socket.Receive接收不到数据,无反应;而如果我在运行程序的同时启动Wireshark抓包工具,发现能够正常接受数据;肯定服务器端能回传数据!

这是哪里的问题?代码如下:

if (IPAddress.TryParse(strIp, out ipAddress) == false)
{
IPHostEntry hst = Dns.GetHostEntry(strIp);
strIp = hst.AddressList[0].ToString();
}

ipeClient = new IPEndPoint(ipAddress, intPort);

//创建连接Socket对象基于TCP协议的

socketTcp = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

socketTcp.SetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.NoDelay, true);

socketTcp.Connect(ipeClient);

int receiveLength = 0;
receiveLength = socketTcp.Receive(tcpSynClBuffer, tcpSynClBuffer.Length, SocketFlags.None);

 

孙振营的主页 孙振营 | 初学一级 | 园豆:3
提问于:2014-04-09 16:14
< >
分享
所有回答(5)
0

把socketTcp.SetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.NoDelay, true);去掉试下,正常不需要加这

56180825 | 园豆:1545 (小虾三级) | 2014-04-09 19:18

最开始的时候我没加这一句也不可以,后来我怀疑是不是有延迟才加的。

支持(0) 反对(0) 孙振营 | 园豆:3 (初学一级) | 2014-04-09 21:15
0

看看是不是你的网络设置,无线和有线之间切换一下,或ipv4与ipv6切换一下

LINNG | 园豆:207 (菜鸟二级) | 2014-04-09 20:18
0

自己本地先定义一下服务器!看两边能不能调通!

繒經最羙 | 园豆:178 (初学一级) | 2014-04-10 08:42
0

用Wireshark抓取到了网卡数据,只能检查一下自己的socket哪里出现了问题。

lucika.zh | 园豆:54 (初学一级) | 2014-04-10 10:22
0

使用 RowSocket编程解决该问题

孙振营 | 园豆:3 (初学一级) | 2014-04-21 20:50
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册