IPAddress ip = IPAddress.Parse("192.168.100.202");
IPEndPoint iep = new IPEndPoint(ip, 6000); List<string> lst = GetAllCardId();
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
string sendMsg = "<s;00003;"+lst.Count+";00000000>"; socket.Connect(iep); int i = 0; while (true)
{
byte[] sendBytes = new byte[1024];
sendBytes = Encoding.ASCII.GetBytes(sendMsg);
socket.Send(sendBytes); int bytes = 0;
byte[] recvBytes = new byte[1024]; while (true)
{
bytes = socket.Receive(recvBytes, recvBytes.Length, 0);
if (bytes <= 0)
{
break;
}
} string recvMsg = Encoding.ASCII.GetString(recvBytes);
if (recvMsg == "")
{
continue;
}
string[] recs = recvMsg.Split('<');
if (recs[1].Substring(0, 1) == "s")
{
string[] temp = recs[1].Split(';');
if (temp[2] == "1")
{
sendMsg = "<t;00003;" + lst[0] + ";00000000>"; }
} }
}
为什么第二次发送之后接受不到数据呢?
IPEndPoint iep = new IPEndPoint(ip, 6000); List<string> lst = GetAllCardId();
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
string sendMsg = "<s;00003;"+lst.Count+";00000000>"; socket.Connect(iep); int i = 0; while (true)
{
byte[] sendBytes = new byte[1024];
sendBytes = Encoding.ASCII.GetBytes(sendMsg);
socket.Send(sendBytes); int bytes = 0;
byte[] recvBytes = new byte[1024]; while (true)
{
bytes = socket.Receive(recvBytes, recvBytes.Length, 0);
if (bytes <= 0)
{
break;
}
} string recvMsg = Encoding.ASCII.GetString(recvBytes);
if (recvMsg == "")
{
continue;
}
string[] recs = recvMsg.Split('<');
if (recs[1].Substring(0, 1) == "s")
{
string[] temp = recs[1].Split(';');
if (temp[2] == "1")
{
sendMsg = "<t;00003;" + lst[0] + ";00000000>"; }
} }
}
为什么第二次发送之后接受不到数据呢?
解决方案 »
- 编程高手请进——用C#搭建消息框
- VC++6.0和vs2005是不是不能同时安装?
- 怎么在Form1中派一个进程守护
- 怎么实现像新浪首页那样的新闻版式
- 比较复杂的问题。。。
- 兄弟姐妹们:急啊,怎么轻松的选择中xmldocumnet中具有特定属性的某一节点,具体事例进来看
- 菜鸟100分求救,分不够再开新贴。setTimeout相关
- 关于DateTimePicker控件的一个问题,急!!!!!!!!
- !!请教基本的开发流程问题!!
- 安装 Crystal Report 9.2 后,Crystal Report Viewe 创建及复制时,VS.NET 时产生问题解疑(新作)
- C# 多线程的问题,请高手解答下
- 大侠们求救
Socket 的发送,接收都是一对的,你用的是同步接收发送。
如果一个发送发不出去,就会一直等待。