数据发送问题
兄弟我刚学网络编程,写了一个简单的server和client
可是就是不能正确的发送数据
现贴程序如下,望有达人相助咯,小弟感激不尽!
sever:
#include "stdio.h"
#include "Winsock2.h"
#pragma comment(lib,"ws2_32.lib")
main()
{
WSADATA wsadata;
WORD Version;
Version=MAKEWORD(2,2);
int iPort=6000;
int sendstatus;
struct sockaddr_in ServerAddr;
char *msg="Welcome to this server!";
char *IP;
int len;
int con;
SOCKET sock2;
con=0;
len=strlen(msg);
ServerAddr.sin_family=AF_INET;
ServerAddr.sin_port=::htons(u_short(iPort));
ServerAddr.sin_addr.s_addr=::inet_addr("10.1.2.2");
if(::WSAStartup(Version,&wsadata)!=0)
{
printf("WSAStarup faild!\n");
}
SOCKET sock1;
sock1=::socket(AF_INET,SOCK_STREAM,0);
::bind(sock1,(struct sockaddr *)&ServerAddr,sizeof(ServerAddr));
int err=::listen(sock1,10);
if(err!=0)
{
printf("listen error!\n");
}
else
{
printf("server is listening now.....\n");
struct sockaddr_in ClientAddr;
int addrlen;
addrlen=sizeof(ClientAddr);
if(sock2=::accept(sock1,(struct sockaddr *)&ClientAddr,&addrlen)==INVALID_SOCKET)
printf("Connection error!\n");
else
printf("have %d connected\n",++con);
printf("The client IP is %s\n",inet_ntoa(ClientAddr.sin_addr));
sendstatus=send(sock2,msg,len,0);
if(sendstatus==len)
printf("send data suceess!\n");
else
printf("send data error!\n");
closesocket(sock2);
}
getchar();
getchar();
closesocket(sock1);
WSACleanup();
}
client:
#include "stdio.h"
#include "Winsock2.h"
#pragma comment(lib,"ws2_32.lib")
main()
{
WSADATA wsadata;
WORD Version=MAKEWORD(2,2);
int iPort=6000;
int len;
char *msg;
if(::WSAStartup(Version,&wsadata)!=0)
printf("WSAStartup faild!");
struct sockaddr_in ServerAddr;
ServerAddr.sin_family=AF_INET;
ServerAddr.sin_addr.s_addr=::inet_addr("10.1.2.2");
ServerAddr.sin_port=::htons(u_short(iPort));
SOCKET client;
client=::socket(AF_INET,SOCK_STREAM,0);
::bind(client,(struct sockaddr *)&ServerAddr,sizeof(ServerAddr));
if(::connect(client ,(struct sockaddr *)&ServerAddr,sizeof(ServerAddr))==SOCKET_ERROR)
printf("connect error!");
else
{
len=recv(client,msg,24,0);
if(len<0)
{
printf("error!\n");
return 0;
}
else
printf("%s",*msg);
}
WSACleanup();
return 0;
getchar();
getchar();
}