//該函數在Winsocket中必須調用
if (WSAStartup(MAKEWORD(1,1),&WSAData) != 0)
{
cout<<"Call WSAStartup()失敗!\n"<<endl;
return;
}
沒看到妳的這個啊。
給妳個我的。
//////////////////////////////TCP server ///////////////////////
#include <assert.h>
#include <iostream.h>
#include <winsock.h>
#pragma comment(lib,"WSOCK32.lib")
//DWORD WINAPI ThreadProc(LPVOID lpParameter);
HANDLE hMutex;
void main()
{
WSADATA WSAData;
//該函數在Winsocket中必須調用
if (WSAStartup(MAKEWORD(1,1),&WSAData) != 0)
{
cout<<"Call WSAStartup()失敗!\n"<<endl;
return;
}
SOCKET ls=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); //以TCP 通信方式
SOCKADDR_IN local_sin;
local_sin.sin_family = AF_INET;
local_sin.sin_addr.S_un.S_addr = htonl(INADDR_ANY);// h主機 to 轉換 n 網絡字節數 l long類型
// htonl 大端排序函數 htons 小端排序
local_sin.sin_port = htons(INADDR_ANY); //PORT 端口
local_sin.sin_port=htons(5001);
bind(ls,(sockaddr *)&local_sin,sizeof(local_sin)); //綁定
listen(ls,2); //監聽,每次最大可以接受10個數據
SOCKADDR_IN client_sin;
int client_sin_len=sizeof(client_sin);
int count=0;
//、、、、、、、、、、、、、、、、、、、、
//線程
///////////////
//char buf[30]={0};
///////////////
//hMutex =::CreateMutex(NULL,FALSE,buf);
//HANDLE handle=CreateThread(NULL,0,ThreadProc,buf,NULL,0);
//、、、、、、、、、、、、、、、、、、、、
while(TRUE)
{
SOCKET cs=accept(ls,(sockaddr *)&client_sin,(int*)&client_sin_len); //接受信息
// cs相當於壹個連接
char buf[30]={0};
count++;
recv(cs,buf,sizeof(buf)-1,0);//讀取信息
cout<<count<<" 服務端 "<<buf<<endl;
//
char buf2[30]="server_send_hello";
send(cs,buf2,strlen(buf2),0);
::Sleep(8000);
}
return;
///////////////////// TCP client /////////////////////////////////
#include <assert.h>
#include <iostream.h>
#include <winsock.h>
#pragma comment(lib,"WSOCK32.lib")
int count=0;
void main()
{
WSADATA WSAData;
//該函數在Winsocket中必須調用
if (WSAStartup(MAKEWORD(1,1),&WSAData) != 0)
{
cout<<"Call WSAStartup()失敗!\n"<<endl;
return;
}
SOCKET s=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); //以TCP 通信方式
SOCKADDR_IN dst_addr;
dst_addr.sin_port=htons(5001);
dst_addr.sin_addr.S_un.S_addr=inet_addr("192.168.3.33 ");
dst_addr.sin_family=PF_INET;
connect(s,(sockaddr *)&dst_addr,sizeof(dst_addr))==SOCKET_ERROR; //連接
char buf[30]="lince_send_hello";
send(s,buf,strlen(buf),0);
//
char buf2[33]={0};
recv(s,buf2,33,0);//讀取信息
count++;
cout<<count<<" 客戶端 "<<buf2<<endl;
closesocket(s);
WSACleanup();
}