代碼
和server一樣,先包含頭文件、庫等
第二步 初始化socket
第三步 定義一個套接字
SOCKET sockClie = socket(AF_INET, SOCK_STREAM, 0);
if (INVALID_SOCKET == sockClie)
{
printf("socket errorNum = %d\n", GetLastError());
return -1;
}
注意,如果觸發(fā)了容錯機制,可以打開工具->錯誤查找,查找錯誤代碼,然后進行改正
第四步? 配置網(wǎng)絡(luò)地址
SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr = inet_addr("192.168.8.246");
addrSrv.sin_family = AF_INET;
addrSrv.sin_port = htons(6000);
第五步,不用綁定,也不用監(jiān)聽,直接連接服務(wù)器
if (SOCKET_ERROR == connect(sockClie, (SOCKADDR*)&addrSrv, sizeof(SOCKADDR)))
{
printf("connect errorNum = %d\n", GetLastError());
return -1;
}
第六步 收發(fā)數(shù)據(jù),先接受服務(wù)器的數(shù)據(jù),然后再發(fā)送,因為服務(wù)器是憲發(fā)后收的
char recvBuff[100] = { 0 };
int iLen = recv(sockClie, recvBuff, 100, 0);
printf("recvBuff=%s\n", recvBuff);
const char sendBuff[100] = { "world" };
iLen = send(sockClie, (char*) sendBuff, 100, 0);
第七步 關(guān)閉連接,然后清理連接
closesocket(sockClie);
WSACleanup();
第一次生成后遇到了這樣的問題
?error C4996 : 'inet_addr' : Use inet_pton() or InetPton() instead or?define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
?我們直接百度_WINSOCK_DEPRECATED_NO_WARNINGS,按照教程更改了這個錯誤文章來源:http://www.zghlxwxcb.cn/news/detail-451173.html
我們可以運行多個client程序,同時與服務(wù)器進行通信,如果打開無數(shù)個client程序會怎么樣呢文章來源地址http://www.zghlxwxcb.cn/news/detail-451173.html
到了這里,關(guān)于網(wǎng)絡(luò)編程 TCP-client的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!