socket 编程,该怎么解决
socket 编程
#include "Winsock2.h"
#include "stdio.h"
void main()
{
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD( 1, 1 );
err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 )
{
return;
}
if ( LOBYTE( wsaData.wVersion ) != 1 ||
HIBYTE( wsaData.wVersion ) != 1 )
{
WSACleanup( );
return;
}
SOCKET sockStr=socket(AF_INET,SOCK_STREAM,0);
SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr =htonl(INADDR_ANY);
addrSrv.sin_port=htons(6000);
addrSrv.sin_family=AF_INET;
bind(sockStr,(sockaddr *)&sockStr,sizeof(sockStr));
listen(sockStr,5);
SOCKADDR_IN addrClient;
int len=sizeof(SOCKADDR);
while(TRUE)
{
SOCKET stockcon=accept(sockStr,(SOCKADDR *)&addrClient
,&len);
char buffer[100];
sprintf(buffer,"welcome %s to http //www.sunxin.org",
inet_ntoa(addrClient.sin_addr));
send(stockcon,buffer,strlen(buffer)+1,0);
char recvbuf[100];
recv(stockcon,recvbuf,100,0);
printf("%s\n",recvbuf);
closesocket(stockcon);
}
}
运行时出现 烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫
是怎么回事啊?那位大侠帮看看,改一下!!!谢谢
------解决方案--------------------
bind(sockStr,(sockaddr *)&addrSrv,sizeof(addrSrv));
------解决方案--------------------
bind(sockStr,(sockaddr *)&addrSrv,sizeof(sockStr));
bind本地socket到一个sockaddr的结构上
#include "Winsock2.h"
#include "stdio.h"
void main()
{
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD( 1, 1 );
err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 )
{
return;
}
if ( LOBYTE( wsaData.wVersion ) != 1 ||
HIBYTE( wsaData.wVersion ) != 1 )
{
WSACleanup( );
return;
}
SOCKET sockStr=socket(AF_INET,SOCK_STREAM,0);
SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr =htonl(INADDR_ANY);
addrSrv.sin_port=htons(6000);
addrSrv.sin_family=AF_INET;
bind(sockStr,(sockaddr *)&sockStr,sizeof(sockStr));
listen(sockStr,5);
SOCKADDR_IN addrClient;
int len=sizeof(SOCKADDR);
while(TRUE)
{
SOCKET stockcon=accept(sockStr,(SOCKADDR *)&addrClient
,&len);
char buffer[100];
sprintf(buffer,"welcome %s to http //www.sunxin.org",
inet_ntoa(addrClient.sin_addr));
send(stockcon,buffer,strlen(buffer)+1,0);
char recvbuf[100];
recv(stockcon,recvbuf,100,0);
printf("%s\n",recvbuf);
closesocket(stockcon);
}
}
运行时出现 烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫
是怎么回事啊?那位大侠帮看看,改一下!!!谢谢
------解决方案--------------------
bind(sockStr,(sockaddr *)&addrSrv,sizeof(addrSrv));
------解决方案--------------------
bind(sockStr,(sockaddr *)&addrSrv,sizeof(sockStr));
bind本地socket到一个sockaddr的结构上