91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 337KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-06-12
  • 語言: C/C++
  • 標簽: socket??c++??

資源簡介

c++實現的雙向通信的socket小程序,如果自己實現界面可做一個簡易的聊天程序

資源截圖

代碼片段和文件信息

//?client.cpp?:?Defines?the?entry?point?for?the?console?application.
//

#include?
#include? //Socket的函數調用 
#include?

#define?BUF_SIZE?6400

#pragma?comment?(lib?“ws2_32“) //?使用WINSOCK2.H時,則需要庫文件WS2_32.LIB

DWORD?WINAPI?Rcv(?LPVOID?lpParam?)
{
SOCKET?sHost?=?*(SOCKET*)lpParam;
int?retVal;
char?bufRecv[BUF_SIZE];?
memset(?bufRecv?0?sizeof(?bufRecv?)?);
while(1)
{
retVal?=?recv(?sHost?bufRecv?BUF_SIZE?0?);
if?(?retVal?==?SOCKET_ERROR?)?{
printf(?“recive?faild!\n“?);
break;
}?else?{
printf(?“收到服務器消息:%s\n“?bufRecv?);
}?
}
return?0;
}

DWORD?WINAPI?Snd(?LPVOID?lpParam?)
{
SOCKET?sHost?=?*(SOCKET*)lpParam;
int?retVal;
char?bufSend[BUF_SIZE];?
memset(?bufSend?0?sizeof(?bufSend?)?);
while(1)
{
gets(?bufSend?);
retVal?=?send(?sHost?bufSend?strlen(bufSend)+sizeof(char)?0?);
if?(?retVal?==?SOCKET_ERROR?)?{
printf(?“send?faild!\n“?);
break;
}?
}
return?0;
}

int?main(int?argc?char*?argv[])
{
WSADATA?wsaData;
if?(?WSAStartup(?MAKEWORD(22)?&wsaData?)?!=?0?)?{
printf(?“Winsock?load?faild!\n“?);
return?1;
}

//??服務器套接字?
SOCKET?sHost?=?socket(?AF_INET?SOCK_STREAM?IPPROTO_TCP?);
if?(?sHost?==?INVALID_SOCKET?)?{
printf(?“socket?faild!\n“?);
WSACleanup();
return?-1;
}

SOCKADDR_IN?servAddr;
servAddr.sin_family?=?AF_INET;
//??注意???當把客戶端程序發到別人的電腦時?此處IP需改為服務器所在電腦的IP?
servAddr.sin_addr.S_un.S_addr?=?inet_addr(?“127.0.0.1“?);
servAddr.sin_port?=?htons(?9999?);

//??連接服務器
if?(?connect(?sHost?(LPSOCKADDR)&servAddr?sizeof(?servAddr?)?)?==?SOCKET_ERROR?)?{
printf(?“connect?faild!\n“?);
closesocket(sHost);
WSACleanup();
return?-1;
}?
printf(“連接到服務器?IP:[%s]port:[%d]\n“inet_ntoa(servAddr.sin_addr)ntohs(servAddr.sin_port));

HANDLE?hThread1?hThread2;
DWORD?dwThreadId1?dwThreadId2;

hThread1?=?::CreateThread(?NULL?NULL?Snd?(LPVOID)&sHost?0?&dwThreadId1?);
hThread2?=?::CreateThread(?NULL?NULL?Rcv?(LPVOID)&sHost?0?&dwThreadId2?);

::WaitForSingleobject(?hThread1?INFINITE?);
::WaitForSingleobject(?hThread2?INFINITE?);
::CloseHandle(hThread1);
::CloseHandle(hThread2);


closesocket(sHost);
WSACleanup();?
return?0;
}


?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件?????554103??2017-06-05?18:58??client.exe

?????文件???????3003??2017-06-05?18:58??server.cpp

?????文件?????555019??2017-06-05?18:58??server.exe

?????文件???????2348??2017-06-05?18:58??client.cpp

-----------?---------??----------?-----??----

??????????????1114473????????????????????4


評論

共有 條評論