Socket 連線簡易程式設計

2021-07-28 06:58:55 字數 2216 閱讀 4442

客戶端:

#include 

#include

using

namespace

std;

#pragma comment (lib, "ws2_32.lib")

#define port 4000

#define ip_address "127.0.0.1"

int main(int agrc, char * agrv)

// create socket

clientsocket = socket(af_inet, sock_stream, ipproto_tcp);

if (clientsocket == invalid_socket)

serveraddr.sin_family = af_inet;

serveraddr.sin_addr.s_addr = inet_addr(ip_address);

serveraddr.sin_port = htons(port);

memset(serveraddr.sin_zero, 0x00, 8);

// connect

ret = connect(clientsocket, (struct sockaddr*)&serveraddr, sizeof(serveraddr));

if (ret == socket_error)

else

while (true)

}closesocket(clientsocket);

wsacleanup();

return

0;}

服務端:

#include 

#include

using

namespace

std;

#pragma comment (lib, "ws2_32.lib")

#define port 4000

#define ip_addreess "127.0.0.1"

int main(int agrc, char* argc)

// createsocket

serversocket = socket(af_inet, sock_stream, ipproto_tcp);

if (serversocket == invalid_socket)

localaddr.sin_family = af_inet;

localaddr.sin_addr.s_addr = inet_addr(ip_addreess); //將ip 127.0.0.1 轉換成網路位元組序

localaddr.sin_port = htons(port); // 轉換為網路位元組序

memset(localaddr.sin_zero, 0x00, 8);

//bind socket

ret = bind(serversocket,(struct sockaddr*)&localaddr, sizeof(localaddr));

if (ret != 0)

// listen

ret = listen(serversocket, 10);

if(ret != 0)

cout

<< " 服務端已經啟動!"

<< endl;

while (true)

char recvbuffer[max_path];

while (true)

cout

<< "接收到的客戶資訊為:"

<< recvbuffer << endl;}}

closesocket(serversocket);

closesocket(clientsocket);

wsacleanup();

return

0;}

af_inet 與 af_inet6

af_inet(又稱 pf_inet)是 ipv4 網路協議的套接字型別,af_inet6 則是 ipv6 的;而 af_unix 則是 unix 系統本地通訊。

選擇 af_inet 的目的就是使用 ipv4 進行通訊。因為 ipv4 使用 32 位位址,相比 ipv6 的 128 位來說,計算更快,便於用於區域網通訊。

而且 af_inet 相比 af_unix 更具通用性,因為 windows 上有 af_inet 而沒有 af_un

Socket程式設計 簡易測試socket TCP程式

簡易的利用socket 實現tcp連線的程式,旨在簡化程式結構,給初學者乙個啟示的作用.伺服器端程式 include stdafx.h include include include using namespace std pragma comment lib,ws2 32.lib 新增ws2 32...

Socket程式設計 簡易測試socket UDP

簡易測試程式,用於測試使用socket 實現udp.程式結構簡單,僅有相關函式的使用.旨在明確新手對於socket的學習方向.伺服器程式 include stdafx.h include include include using namespace std pragma comment lib,w...

linux下簡易socket程式設計

最近研究了一下linux下的socket程式設計。這裡寫乙個簡易的版本上去。主要是分client和server兩個部分。對於client比較簡單,這裡僅做乙個簡單的client。可以給自己的server傳送一條訊息並且可以得到一條伺服器返回的訊息,之後結束程序。include include inc...