很長時間沒寫部落格了,希望自己可以堅持下去,從小白開始成長吧,也希望各位讀者能給點鼓勵。
本文實現的功能是基於c++和tcp進行服務端客戶端進行通訊,希望給你給讀者一定的幫助。
具體步驟:
1 初始化scoket 資源,注意,一定要在同一段**中實現,不然可能會出問題。
2 構造服務端socket
3 繫結監聽介面
4 開始監聽
5 接收客戶端連線,進行通訊,繼續監聽。
#define _crt_secure_no_warnings
#pragma comment(lib, "ws2_32.lib")
#include "pch.h"
#include #include using namespace std;
int main01()
/*構造服務端socket*/
socket listen_sock = socket(af_inet, sock_stream, 0);
/*配置監聽位址和埠*/
sockaddr_in serveraddr;
zeromemory((char *)&serveraddr, sizeof(serveraddr));
serveraddr.sin_family = af_inet;
serveraddr.sin_port = htons(1234); /*本地監聽埠:1234*/
serveraddr.sin_addr.s_addr = htonl(inaddr_any); /*有ip*/
/*繫結監聽介面*/
bind(listen_sock, (struct sockaddr *)&serveraddr, sizeof(serveraddr));
listen(listen_sock, 5);
sockaddr_in addrclient;
int len = sizeof(sockaddr);
char nullbuf[64];
for (int i = 0; i < 64; i++)
cout << "等待連線" << endl;
while (true)
cout << "舒辰:";
printf("%s\n", recvbuf);
memcpy(sendbuf, nullbuf, 64);
cout << "寶寶:" ;
cin >> sendbuf;
sendlen = 0;
for (int i = 0; i < 64; i++)
}send(sockconn, sendbuf, sendlen+1, 0);
} closesocket(sockconn);
} wsacleanup();
std::cout << "hello world!\n";
return 0;
}
1 初始化scoket 資源,注意,一定要在同一段**中實現,不然可能會出問題。
2 構造服務端socket
3 輸入ip位址和埠進行連線
#define _winsock_deprecated_no_warnings
#pragma comment(lib, "ws2_32.lib")
#include "pch.h"
#include #include #include #include< ws2tcpip.h>
using namespace std;
int main()
/*構造客戶端socket*/
socket client_sock = socket(af_inet, sock_stream, 0);
sockaddr_in addrsrv;
int res = inet_pton(af_inet,"127.0.0.1",&addrsrv.sin_addr.s_un.s_addr); //inet_addr
addrsrv.sin_family = af_inet;
addrsrv.sin_port = htons(1234);
connect(client_sock, (sockaddr*)&addrsrv, sizeof(sockaddr));
cout << "連線成功!" << endl;
char nullbuf[64];
int sendlen;
for (int i = 0; i < 64; i++)
char sendbuf[64];
char recvbuf[64];
while (true)
sendlen = 0;
for (int i = 0; i < 64; i++)
}send(client_sock, sendbuf, sendlen + 1, 0);
memcpy(recvbuf, nullbuf, 64);
recv(client_sock, recvbuf, 64, 0);
cout << "寶寶:";
printf("%s\n", recvbuf);
} closesocket(client_sock);
wsacleanup();
std::cout << "hello world!\n";
return 0;
}
具體的**就這些,希望能幫到你。 基於TCP和UDP的socket通訊(C 實現)
首先談談tcp socket tcp簡單的三次握手過程如圖,syn synchronize sequence numbers 同步標誌 ack acknowledgement number 確認標誌 圖中可以看出,三次握手的過程是在c的connect 和s的bind listen accept 函式...
基於tcp和udp的socket通訊
做個小遊戲的project用到了socket程式設計,於是,就在網上查閱了一下資料,下面簡單總結一下。1.什麼是socket socket是在應用層與傳輸層之間的乙個抽象層,它把tcp ip層複雜的操作抽象為幾個介面 用層的程序實現網路通訊,使得不同主機的相關程序之間交換資料。2.什麼是tcp和ud...
基於Socket的UDP和TCP協議
一 概述 tcp 傳輸控制協議 和udp 使用者資料報協議 是網路體系結構tcp ip模型中傳輸層一層中的兩個不同的通訊協議。tcp 傳輸控制協議,一種面向連線的協議,給使用者程序提供可靠的全雙工的位元組流,tcp套介面是位元組流套介面 stream socket 的一種。udp 使用者資料報協議。...