C++TCP通信服务端代码问题

C++TCP通信服务端代码问题,第1张

#include<winsock2h>

#pragma comment (lib,"ws2_32")

int main(int argc, char argv[])

{

WSADATA wsaData;

WSAStartup(MAKEWORD(2,2),&wsaData);

SOCKET s = socket(PF_INET,SOCK_STREAM,IPPROTO_TCP);

/struct sockaddr_in {

        short   sin_family;

        u_short sin_port;

        struct  in_addr sin_addr;

        char    sin_zero[8];

};

/

sockaddr_in socketaddr;

socketaddrsin_family = PF_INET;

socketaddrsin_addrS_unS_addr =  inet_addr("127001");

socketaddrsin_port = htons(827);

bind(s, (SOCKADDR)&socketaddr, sizeof(SOCKADDR));

listen(s,1);

SOCKADDR clientAddr;

int nSize = sizeof(SOCKADDR);

SOCKET clientSock;

clientSock = accept(s,(SOCKADDR)&clientAddr,&nSize);

send(clientSock,"hello world!\r\n",strlen("hello world!\r\n")+sizeof(char),NULL);

closesocket(clientSock);

closesocket(s);

WSACleanup();

return 0;

}

这是修改后的代码。兄弟,打字认真点,都是单词拼写错误!!

端口被占用、防火墙阻止连接、服务端程序出错。

1、端口被占用:服务端需要监听特定的端口,如果该端口已经被占用,服务端就无法启动。可以通过netstat命令查看当前端口的占用情况,然后选择一个没有被占用的端口进行服务端的监听。

2、防火墙阻止连接:防火墙可能会阻止应用程序的连接,导致服务端启动失败。可以检查防火墙的设置,将测试工具的端口设置为允许连接。

3、服务端程序出错:服务端程序可能存在代码或配置错误,导致无法启动。可以检查服务端程序的日志或者debug信息,找出错误原因。

首先你要确保两个机器能互相ping通(网络确实是畅通的才可以!)

你服务端绑定的IP估计是用的127001

//绑定IP和端口

sockaddr_in sin;

sinsin_family = AF_INET;

sinsin_port = htons(8888);

sinsin_addrS_unS_addr = INADDR_ANY; //这里!!

或者,你的客户端使用的是127001

sockaddr_in serAddr;

serAddrsin_family = AF_INET;

serAddrsin_port = htons(8888);

serAddrsin_addrS_unS_addr = inet_addr("127001"); //127001是本机的一个loopback地址,你应该写成对端的SERVER的实际ip

或者

SERVER端的机器上有防火墙挡住了你的应用访问。

两个方面,一个是程序代码上的,一个是机器环境上的。自己多方面检查一下吧。

以上就是关于C++TCP通信服务端代码问题全部的内容,包括:C++TCP通信服务端代码问题、tcpupd测试工具使用新建服务端但启动提示socket错误、c++编写的tcp协议客户端和服务器程序问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9316385.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存