草庐IT

Tcpclient

全部标签

winsock - TCP IP recv() 函数未接收到来自服务器的回显消息

我在Windows中使用TCPIP套接字程序,我在其中创建了一个客户端用于将数据传输到服务器和服务器正在将消息回显给客户端(请注意,服务器已通过telnet应用程序正常工作)。但是当我从客户端发送测试消息时,它会在服务器端收到,但是当我试图在客户端中读取回显消息时>使用recv()函数的一侧我没有得到回显消息,但是无论我在服务器侧输入什么,它都会显示在客户端侧接收recv()函数我通过此链接关注程序http://cs.baylor.edu/~donahoo/practical/CSockets/code/TCPEchoClientWS.c有人有什么解决办法吗?

c - 在一台服务器上接收多个客户端数据包

我有3个应用程序、一个服务器、2个客户端。我正在尝试对此进行编程,以便我可以将我的客户端的登录请求发送到服务器并请求查看有关另一个客户端的信息。问题:我对所有3个应用程序使用相同的ip和端口号(这都是在我计算机上的3个visualstudio应用程序上完成的)否则我认为它无法连接到服务器。这样可以吗?当我尝试在服务器的while循环之外使用listen和accept时,它适用于一个客户端,但不适用于另一个客户端。当我尝试将listen和accept放在while循环中时,它对两个客户端都有效,但不会响应多个accept。我的问题是什么?服务器structUsers{intmessage

c# - 暂时锁定端口以供测试

在我的项目中,我有一个类检查本地主机上的所有端口,如果端口空闲则返回true,否则返回false。解决方案基于thisanswer我需要以某种方式对其进行测试。有没有办法暂时使用端口然后释放它?我试过使用TcpListenerStart没有成功。如果我使用TcpClientConnect我得到System.Net.Sockets.SocketException无法建立连接,因为目标机器主动拒绝它127.0.0.1:myPort。这是我使用的代码:classTestPortLocker{publicTcpClientclient;publicTcpListenerlistener;pub

c# - Network Down 上的 TcpClient 连接状态问题

我有一个TcpClient,我正在连接到机器并且一切正常。现在我想通过计时器的帮助在60秒内监控连接状态的额外步骤。根据该主题的基础研究我知道没有直接的方法来测试它。所以我尝试通过应用程序脱网时发送到机器的最近消息的响应来获取它。这是代码..//Findoutwhetherthesocketisconnectedtotheremotehost.//SendamessagetoMachinetry{byte[]notify=Encoding.ASCII.GetBytes("Hello");stream.Write(notify,0,notify.Length);}catch{}//Che

.net - TcpClient - 如何确定何时传送字节?

使用TcpClient时,如何知道服务器收到或未收到什么?例如,假设我的消息是一个很长的字符串:stringmyAppMessage="wasuptoolatecoding,bla,bla,bla,....."byte[]allBytes=Encoding.ASCII.GetBytes(myAppMessage);我想将整个字符串传递给TCP,并且我想知道整个字符串已传送到服务器并由服务器接收。似乎有一些常见的方式通过TCP发送数据:varclient=newTcpClient(IP_ADDR,PORT)client.GetStream().Write(allBytes)-或-clie

c# - 将 TcpClient ReceiveTimeout 与同步程序一起使用

我有一个多线程C#程序,其中每个线程都使用TcpClient从多个服务器同步接收面向文本/行的数据。它已经运行2年没有错误,但是当提供服务器的供应商发生变化时,我们开始看到供应商服务器程序出现缓冲区溢出的问题,并且他们的修复(显然)阻止了核心转储,但也他们停止发送给我们。但是他们并没有断开TCP连接,所以双方都显示为ESTABLISHED。供应商告诉我们,另一位客户通过简单地实现超时并在可配置的超时后未收到数据时重新建立连接来解决此问题。由于我使用同步模型(本质上是“whilereadline()”)实现我的线程,我可以使用TcpClientReceiveTimeout属性并期望它正常

java - 为什么使用 Socket.setSoTimeout() 不起作用?

此代码fragment来self在Androidjava中制作的TCP辅助函数:socket.setSoTimeout(2000);InputStreaminStream=socket.getInputStream();PrintWriterout=newPrintWriter(newBufferedWriter(newOutputStreamWriter(socket.getOutputStream())),true);out.println(message);BufferedReaderinput=newBufferedReader(newInputStreamReader(inS

c# - 从 TcpClient 获取源 IP

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭6年前。Improvethisquestion我需要一个以TcpClient作为参数的简单函数。假定TcpClient已连接到服务器。该函数应返回客户端设备用于与服务器设备连接的ip。不是已建立连接的服务器设备的ip,而是用于与服务器连接的客户端设备的ip。由于一台设备可以有多个ip地址,我想要与服务器连接的特定ip。

node.js - 如何使用 Docker Compose 将容器 A 中的 Node.js TCP 客户端连接到容器 B 中的 TCP 服务器?

我正在尝试将容器A中的TCP客户端连接到容器B中的TCP服务器。运行docker-composeup导致客户端出现ECONNREFUSED错误。为什么呢?TCP客户端看起来像这样:varnet=require('net');varclient=newnet.Socket();client.connect(1337,function(){console.log('Connected');client.write('Hello,server!Love,Client.');});client.on('data',function(data){console.log('Received:'+d

sockets - 关闭套接字和关闭网络流之间的区别(System.Net.Sockets)

我有一个代理服务器实现,如果我直接关闭套接字(System.Net.SocketsTCPClient.Client.Close())然后客户端收到连接中止错误,但如果我使用系统,则在向客户端发送最终响应后.Net.SocketsTCPClient.getStream().Close(),它成功运行。我想了解有什么区别以及为什么客户端在第一种情况下收到错误? 最佳答案 我想说,套接字的关闭并不是大多数人认为的微不足道的操作:)首先,您应该了解应该如何正确完成关闭。基本上,您必须考虑到close是一种消息,就像从您的套接字发出的任何其他