c#tcp协议通信问题,消息第一次发送无反应

问题描述

c#tcp协议通信问题,消息第一次发送无反应

先上代码
try
{
FileStream file = new FileStream(str0 + "init1.txt", FileMode.Open);
for (int i = 0; (i * 18) < file.Length; i++)
{
file.Seek(i * 18, SeekOrigin.Begin);
file.Read(byData, 0, 18);
Decoder d = Encoding.Default.GetDecoder();
d.GetChars(byData, 0, byData.Length, charData, 0);
//SendMsgStart("shut", new string(charData).Substring(4, 12), "43680"); //udp消息发送
TcpClient tcpClient = new TcpClient();
tcpClient.Connect(IPAddress.Parse(new string(charData).Substring(4, 12)), Int32.Parse("43680"));
NetworkStream ns = tcpClient.GetStream();
ns.Write(bstart, 0, 6);
ns.Close();
tcpClient.Close();
}
file.Close();
其他的不管了,代码其实也可以不看。就是我第一次运行这个代码,对方机器没反应。对方机器无法测试是否获取信息。然后再次运行一下机器就做出正常反映了。对方机器udp协议通信正常,发送消息一次就能做出正常反映。

解决方案

调试下,看看对方有没有开始监听端口

解决方案二:

这个最好能在对方机器上抓包分析一下,不然不知道网络中发生了什么

解决方案三:

我改了程序,改成循环发送两次消息,暂时解决问题,可能是对方机器的问题。

时间: 2024-10-15 03:26:12

c#tcp协议通信问题,消息第一次发送无反应的相关文章

客户端通信-TCP协议通信中,两个客户端之间是如何进行通信的

问题描述 TCP协议通信中,两个客户端之间是如何进行通信的 我现在在学习JAVA的网络编程,我想实现一个类似于QQ那样的通信软件,但是我不知道客户端与客户端之间是怎么通信,他们是通过一个服务端来进行通信的吗,例如:客户端A想跟客户端B通信,需要客户端A先跟服务端C通信,然后再通过服务端C与客户端B通信,是这样吗? 解决方案 对的A将信息发给C,C在socket表中查找之前C与B的socket,然后根据这个socket,把信息转发给B

《Linux高性能服务器编程》——第3章 TCP协议详解 3.1 TCP服务的特点

第3章 TCP协议详解 TCP协议是TCP/IP协议族中另一个重要的协议.和IP协议相比,TCP协议更靠近应用层,因此在应用程序中具有更强的可操作性.一些重要的socket选项都和TCP协议相关. 本章从如下四方面来讨论TCP协议: 不过在详细讨论TCP协议之前,我们先简单介绍一下TCP服务的特点,以及它和UDP服务的区别. 3.1 TCP服务的特点 传输层协议主要有两个:TCP协议和UDP协议.TCP协议相对于UDP协议的特点是:面向连接.字节流和可靠传输. 使用TCP协议通信的双方必须先建立

c++-TCP/IP通信:如何制定一个好的报文协议?

问题描述 TCP/IP通信:如何制定一个好的报文协议? 我想做一个简单的TCP/IP通讯程序,客户端需要注册,登陆,登录信息有: 用户名.密码(都是必填项)和其他若干选填项(可填可不填): 我现在要注册,包含以下信息,举个例子: 用户名:wang 密码:ab12345 手机号:12345678910 这三条信息是一次性打包发送还是分三次打包发送(一条信息一个包)? (1)若是一次性打包发送,该如何打包?协议如何定比较好,请举实例说明.发给服务端后服务端又该如何解析?比如第三条信息,可以是手机号,

【转】TCP协议的无消息边界问题

http://www.cnblogs.com/eping/archive/2009/12/12/1622579.html    使用TCP协议编写应用程序时,需要考虑一个问题:TCP协议是无消息边界的,即不能保证来自单个Send方法的数据能被单个Receive方法读取. eg: 第一次发送:abcdefg   第二次发送:123456         接收方接收数据时,可能会出现以下情况: 第一次接收:abcdefg123456   也可能出现:第一次接收:abc 第二次接收:efg12 第三次

高性能网络编程2&amp;#8211;TCP消息的发送

作者:陶辉 在上一篇中,我们已经建立好的TCP连接,对应着操作系统分配的1个套接字.操作TCP协议发送数据时,面对的是数据流.通常调用诸如send或者write方法来发送数据到另一台主机,那么,调用这样的方法时,在操作系统内核中发生了什么事情呢?我们带着以下3个问题来细细分析:发送方法成功返回时,能保证TCP另一端的主机接收到吗?能保证数据已经发送到网络上了吗?套接字为阻塞或者非阻塞时,发送方法做的事情有何不同? 要回答上面3个问题涉及了不少知识点,我们先在TCP层面上看看,发送方法调用时内核做

协议森林08 不放弃 (TCP协议与流通信)

作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁任何形式转载.   TCP(Transportation Control Protocol)协议与IP协议是一同产生的.事实上,两者最初是一个协议,后来才被分拆成网络层的IP和传输层的TCP.我们已经在UDP协议中介绍过,UDP协议是IP协议在传输层的"傀儡",用来实现数据包形式的通信.而TCP协议则实现了"流"形式的通信. TCP的内容非常丰富.我不能在一篇文章中将TCP讲完.这

socket-VBS中Socket通过TCP协议发送数据

问题描述 VBS中Socket通过TCP协议发送数据 问题是一个接着一个: 在使用MSWINsock.Winsock通过TCP发送数据到Server的时候,提示如下错误: 代码如下: Dim sock,socket '赋值sock变量为WINSOCK的对象 Set sock = Wscript.createobject("MSWINsock.Winsock") sock.Protocol = 0 sock.RemoteHost = "10.185.59.51" so

webbrower中tcp协议 捕捉和发送数据

问题描述 祝各位新年快乐,万事如意网站是一个flash的页面聊天程序.通过tcp协议链接的.远程端口1311.一直保持着的端口我在窗体中方了一个webbrowser控件想通过webbrower来实现对返回数据的捕捉.并且可以向这个端口发送数据.只需要可以发送到这个端口和返回数据比如直接在自己的textbox文本中输入内容.点击之后就可以发送到此时web控件链接到的tcp端口上.并且如果有返回信息又可以直接捕捉到然后放在某个textbox文本中求demo.code.思路谢谢 解决方案 解决方案二:

协议-Android软件使用TCP进行通信,连接不到服务端,在同一子网,代码跟异常日志都有,请大神指教

问题描述 Android软件使用TCP进行通信,连接不到服务端,在同一子网,代码跟异常日志都有,请大神指教 客户端线程:class BB1 extends Thread{ public void run() { try { System.out.println(""hahahha""); Socket client=new Socket(ipadressPORT); System.out.println(client.getPort()); mingling=&qu