关于C#中socket的问题 接收不到数据

athuhu0321 2011-08-01 04:28:36
各位大侠:
小弟一事不明,向各位大侠请教:
问题如下:
小弟最近在做一个无线数据传输项目,底层硬件已经做好,并且承包方做好一个delphi程序,可以和底层硬件进行数据通讯。我们领导要我做一个C#的上位机,使用C#中的socket。
我按着网上的socket教程,一步步写下来,部分代码如下:
1)………………………………………………Form Load事件
IPAddress ServerIp = GetServerIP();//获得IP地址
IPEndPoint iep = new IPEndPoint(ServerIp, setPort);//建立套接字
socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.Bind(iep);//绑定
2)………………………………………………………………………………………监听事件
socket.Listen(20);//开始监听 挂起数为20
socket.ReceiveTimeout = 1000000;//
newSocket = socket.Accept();//Socket
newSocket.ReceiveTimeout = 1000000;//

msgTime = DateTime.Today.ToShortDateString() + " " + DateTime.Now.ToLongTimeString();//
msg = msgTime + " 收到一个新的TCP连接:" + serverIp.ToString() + "-" + serverport.ToString();//

// ThreadFuntion();//唤醒 进行文本框等控件的更新

while (true)
{

try
{

newSocket.Receive(byteMReceiveOne);
………………//省去了翻译byteMReceiveOne的代码
newSocket.Send(byteMReceiveOne);
}………………

……………………
按着协议的约定,newSocket.Send(byteMReceiveOne)中的byteMReceiveOne含有心跳频率。和硬件一起来的delphi程序就可以按着心跳接收发送数据并且可以进行数据操作,但是我也是按着协议发给下位机,他根本就不返回啊;而且有时候根本收不到下位机首次发来的数据包,很是郁闷啊
哪位好心的大侠帮帮我啊,困扰我很久了,我的Q342078131,谢谢非常着急,百度上我也找了N久了


...全文
649 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
gs0038 2011-08-01
  • 打赏
  • 举报
回复
你这里主要代码也没有,你标题又写着是收到不数据,但你的问题描术中又有发不出数据,

我有几点不明白问一下LZ

1、你确定与下位机连接了吗?
2、你数据发出了吗?确定是发成功了吗?发送的对象是你的下位机吗?发送的数据格式是你的下位机给你的格式了吗,(最后跟下位机开发人员看一下你发的格式是不是正确的~~,我以前就有过,对方给我的格式我给写高低位反了)

最后祝你早日从调试中出来
syx151 2011-08-01
  • 打赏
  • 举报
回复
你说的底层硬件是指什么?Wifi设备吗?
它跟你的机器连载同一台无线AP上吗?
athuhu0321 2011-08-01
  • 打赏
  • 举报
回复
自己顶 下班前在线等…………

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧