資源簡介
包含兩個文件。
服務器功能:監控端口,等待客戶端的請求;建立連接成功后,服務器每輸入一次數據,發送一組數據;若輸入 q,則停止發送。
客戶端功能:向服務器請求建立連接,建立成功后,接收服務器的數據,直到服務器主動停止傳輸數據。

代碼片段和文件信息
/*客戶端
功能:向服務器請求建立連接,建立成功后,接收服務器的數據,直到服務器主動停止傳輸數據。
*/
#include?
#include?
#include?
using?namespace?std;
#pragma?comment(lib“ws2_32.lib“)
int?main()
{
WORD?sockVerson?=?MAKEWORD(2?2);
WSADATA?wsaData;
if?(WSAStartup(sockVerson?&wsaData)?!=?0)
return?0;
//建立客戶端socket
SOCKET?clientSocket?=?socket(AF_INET?SOCK_STREAM?IPPROTO_TCP);
if?(clientSocket?==?INVALID_SOCKET)
{
printf(“套接字創建失敗“);
WSACleanup();
return?0;
}
//定義要連接的服務器地址
sockaddr_in?addrConServer;
addrConServer.sin_family?=?AF_INET;
addrConServer.sin_port?=?htons(8888);
addrConServer.sin_addr.S_un.S_addr?=?inet_addr(“127.0.0.1“);
if?(connect(clientSocket?(SOCKADDR*)&addrConServer?sizeof(addrConServer))?==?SOCKET_ERROR)
{
printf(“客戶端建立連接失敗!\n“);
closesocket(clientSocket);
WSACleanup();
return?0;
}
else?
printf(“客戶端建立連接成功,準備發送數據!\n“);
char?sendBuf[30]?=?“HelloServer!“;
printf(“擬發送數據:%s?\n“?sendBuf);
//char?revSerData[10]?=?““;
int?res;
//發送數據
int?sendRes?=?send(clientSocket?sendBuf?(int)strlen(sendBuf)?0);
if?(sendRes?==?SOCKET_ERROR)
{
printf(“客戶端send()出現錯誤?:?%d\n“?WSAGetLastError());
closesocket(clientSocket);
WSACleanup();
return?0;
}
else
printf(“客戶端發送數據成功!\n“);
//接收服務端數據
/*通過建立的連接進行通信*/
do
{
char?revSerData[100]?=?““;
res?=?recv(clientSocket?revSerData?sizeof(revSerData)?0);
if?(res?>?0)
{
printf(“Bytes?received:?%d\n“?res);
printf(“服務器發送的數據:?%s\n“?revSerData);
}
else?if?(res?==?0)
printf(“Connection?closed\n“);
else
printf(“recv?failed:?%d\n“?WSAGetLastError());
}?while?(res?>?0);
closesocket(clientSocket);
WSACleanup();
system(“pause“);
return?0;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1922??2018-08-12?23:53??socTcpClient.cpp
?????文件???????2924??2018-08-13?16:28??socTcpServer.cpp
-----------?---------??----------?-----??----
?????????????????4846????????????????????2
- 上一篇:通泰觸摸IC_TTP229成功套開發資料
- 下一篇:OpenCv視頻采集
評論
共有 條評論