18,356
社区成员
发帖
与我相关
我的任务
分享
SOCKET srvSock;
SOCKET clientSock;
SOCKADDR_IN servAddr;//服务器地址信息
SOCKADDR_IN nodeAddr;//客户端端的地址信息
srvSock = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
clientSock = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
servAddr.sin_family = AF_INET;
servAddr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
servAddr.sin_port = htons(SERVERNODE);
nodeAddr.sin_family = AF_INET;
nodeAddr.sin_addr.s_addr = htonl(INADDR_ANY);
//设置客户端固定端口为5153
nodeAddr.sin_port = htons(5153);
//绑定客户端的地址信息,使得客户端的端口号固定
bind(clientSock,(SOCKADDR*)&nodeAddr,sizeof(SOCKADDR));
//或者绑定 bind(srvSock,(SOCKADDR*)&nodeAddr,sizeof(SOCKADDR));
if(connect(srvSock,(SOCKADDR*)&servAddr,sizeof(SOCKADDR))==-1)
return FALSE;
Accept = WSAAccept(ListenNode,(SOCKADDR*)&RemoteAddr,&RemoteLen,NULL,0);
if(Accept == SOCKET_ERROR)
{
printf("接收连接失败,错误代码: %d\n", WSAGetLastError());
return 0;
}
//printf("客户端端口号为: %d\n",inet_ntoa(RemoteAddr.sin_addr));
printf("客户端端口号为: %d\n",RemoteAddr.sin_port); //输出不是5153