Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sockets 一个Tcp客户端能否同时与两个不同的服务器建立连接?_Sockets_Tcpclient_Tcpserver - Fatal编程技术网

Sockets 一个Tcp客户端能否同时与两个不同的服务器建立连接?

Sockets 一个Tcp客户端能否同时与两个不同的服务器建立连接?,sockets,tcpclient,tcpserver,Sockets,Tcpclient,Tcpserver,我的应用程序的BlokDiagram: 我有一个基于TCP/IP的系统。正如您在blokdiagram上看到的,任务是从SAP服务器获取数据。客户端接收文件并将其保存在已知目录中,Gui应用程序可以在该目录中访问这些文件 我需要创建一个Tcp客户端,它应该从SAP服务器接收文件并将它们发送到Zebra打印机。客户端应用程序需要同时发送数据和接收数据。 我可以在一个客户端应用程序中执行此操作,还是需要多个客户端 我在网上找到这段代码只是为了测试 { int Socket1 = socket(PF_

我的应用程序的BlokDiagram:

我有一个基于TCP/IP的系统。正如您在blokdiagram上看到的,任务是从SAP服务器获取数据。客户端接收文件并将其保存在已知目录中,Gui应用程序可以在该目录中访问这些文件

我需要创建一个Tcp客户端,它应该从SAP服务器接收文件并将它们发送到Zebra打印机。客户端应用程序需要同时发送数据和接收数据。 我可以在一个客户端应用程序中执行此操作,还是需要多个客户端

我在网上找到这段代码只是为了测试

{
int Socket1 = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);

sockaddr_in SrcSockAddr;
SrcSockAddr.sin_family = PF_INET;
SrcSockAddr.sin_addr.s_addr = inet_addr("192.168.1.2");
SrcSockAddr.sin_port = htons(5061);

if( -1 == bind(Socket1, (sockaddr*) &SrcSockAddr, sizeof (SrcSockAddr)) )
   exit(1);

sockaddr_in DstSockAddr;
DstSockAddr.sin_family = PF_INET;
DstSockAddr.sin_addr.s_addr = inet_addr("192.168.1.3");
DstSockAddr.sin_port = htons(5061);

if( connect(Socket1, (sockaddr*)&DstSockAddr, sizeof(DstSockAddr)) )
    exit(2);


int Socket2 = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);

if( -1 == bind(Socket2, (sockaddr*) &SrcSockAddr, sizeof (SrcSockAddr)) )
    exit(3);

DstSockAddr.sin_port = htons(5062);
if( connect(Socket2, (sockaddr*)&(DstSockAddr), sizeof(DstSockAddr)) )
    exit(4);

exit(0);
}

无法找出它有什么问题…

您可以在一个客户端应用程序中使用两个套接字,每个服务器连接一个套接字。

您可以检查我从internet复制的代码有什么问题吗?如果出现任何可能的错误,请将其更改为call perror,您将自己看到。只为每个错误调用exit完全是浪费您的时间,而且Windows上不存在其他人的.perror。如果要检索给定错误代码的可读文本消息,请改用WSAGetLastError和FormatMessage。为什么您认为有问题?你有错误吗?无法解释的行为?你需要更具体一些。