服務器代碼
SOCKET clientSocket=socket(AF_INET,SOCK_STREAM,0);
int send_len = 0;
int recv_len = 0;
SOCKET s_server;
SOCKADDR_IN server_addr;
WSADATA wsadata;
WSAStartup(0x22, &wsadata);
server_addr.sin_family = AF_INET;
server_addr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
server_addr.sin_port = htons(80);
std::string msgstr="";
s_server = socket(AF_INET, SOCK_STREAM, 0);
int result = bind(s_server,(struct sockaddr *) &server_addr,sizeof(server_addr));
if (result == SOCKET_ERROR)
{
closesocket(s_server);
printf("[Web] Fail to bind, error = %d\n", WSAGetLastError());
return -1;
}
if (listen(s_server,SOMAXCONN)==-1) {
int err = GetLastError();
std::cout << "服務器啓動失敗!" << std::endl;
std::cout << err << std::endl;
}
else {
std::cout << "服務器啓動成功!" << std::endl;
}
while(1){
SOCKADDR_IN from_addr;
socklen_t from_len = sizeof(from_addr);
std::string reponse_data="404";
SOCKET acpt_soc = accept(s_server,(struct sockaddr *) &from_addr,&from_len);
if (acpt_soc == INVALID_SOCKET)
{ int err = GetLastError();
printf("接收失敗1", WSAGetLastError());
std::cout << err << std::endl;
break;
}
char recv_buf [1025] = "";
recv_len = recv(acpt_soc,recv_buf,1025, 0);
if (recv_len < 0) {
std::cout << "接收失敗2!" << std::endl;
}else{
std::cout << "接收成功!" << std::endl;
std::cout << recv_buf << std::endl;
}
send_len = send(acpt_soc,recv_buf,strlen(recv_buf), 0);
if (send_len < 0) {
std::cout << "發送失敗!" << std::endl;
closesocket(acpt_soc);
}else{
std::cout << "發送成功!" << std::endl;
}
}
closesocket(s_server);
WSACleanup();
客戶端代碼
SOCKET clientSocket=socket(AF_INET,SOCK_STREAM,0);
int send_len = 0;
int recv_len = 0;
SOCKET s_server;
SOCKADDR_IN server_addr;
WSADATA wsadata;
WSAStartup(0x22, &wsadata);
server_addr.sin_family = AF_INET;
server_addr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
server_addr.sin_port = htons(12580);
string msgstr="";
s_server = socket(AF_INET, SOCK_STREAM, 0);
int nTimeout = 120000;
if (SOCKET_ERROR == setsockopt(s_server, SOL_SOCKET, SO_RCVTIMEO, (char *)&nTimeout, sizeof(int)))
{
fprintf(stderr, "Set SO_RCVTIMEO error !\n");
}
if (connect(s_server, (SOCKADDR *)&server_addr, sizeof(SOCKADDR)) == SOCKET_ERROR) {
cout << "服務器連接失敗!" << endl;
closesocket(s_server);
WSACleanup();
return 0;
}
else {
cout << "服務器連接成功!" << endl;
}
cout << "開始傳輸桌面信息:"<< endl;
while(1){
char send_buf [1025] = "111";
send_len = send(s_server,send_buf,strlen(send_buf), 0);
if (send_len < 0) {
cout << "發送失敗!" << endl;
closesocket(s_server);
WSACleanup();
return 0;
}else{
cout << "發送成功!" << endl;
}
char recv_buf [1025] = "";
recv_len = recv(s_server,recv_buf,1025, 0);
if (recv_len < 0) {
cout << "接收失敗!" << endl;
closesocket(s_server);
WSACleanup();
return 0;
}else{
cout <<recv_buf<< endl;
cout << "接收成功!" << endl;
}
}
closesocket(s_server);
WSACleanup();