socket程式設計(一)

2021-08-04 17:59:48 字數 2212 閱讀 6786

#include 

#include

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

using

namespace

std;

int main(int argc, char* argv)

//建立套接字

socket slisten = socket(af_inet, sock_stream, ipproto_tcp);

if (slisten == invalid_socket)

//繫結ip和埠

sockaddr_in sin;

sin.sin_family = af_inet;

sin.sin_port = htons(8888);

sin.sin_addr.s_un.s_addr = inaddr_any;

if (bind(slisten, (lpsockaddr)&sin, sizeof(sin)) == socket_error)

//開始監聽

if (listen(slisten, 5) == socket_error)

//迴圈接收資料

socket sclient;

sockaddr_in remoteaddr;

int naddrlen = sizeof(remoteaddr);

char revdata[255];

char senddata[255];

int ret;

cout

<<"等待連線...\n";

sclient = accept(slisten, (sockaddr *)&remoteaddr, &naddrlen);

if (sclient == invalid_socket)

printf("接受到乙個連線:%s \r\n", inet_ntoa(remoteaddr.sin_addr));

while (true)

if (revdata[0] == '0')

cout

<< "客戶端傳送的資料:"

cout

<< "傳送到客戶端的資料:"

<< endl;

zeromemory(senddata, 255);

cin >> senddata;

send(sclient, senddata, strlen(senddata), 0);

}closesocket(sclient);

closesocket(slisten);

wsacleanup();

return

0;}

#include 

#include

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

using

namespace

std;

int main(int argc, char* argv)

socket sclient = socket(af_inet, sock_stream, ipproto_tcp);

if (sclient == invalid_socket)

sockaddr_in seraddr;

seraddr.sin_family = af_inet;

seraddr.sin_port = htons(8888);

seraddr.sin_addr.s_un.s_addr = inet_addr("127.0.0.1");

if (connect(sclient, (sockaddr *)&seraddr, sizeof(seraddr)) == socket_error)

char senddata[255];

char recdata[255];

int retval;

int ret;

cout

<< "輸入0退出"

<< endl;

while (true)

if (senddata[0] == '0')

break;

ret = recv(sclient, recdata, 255, 0);

cout

<< "接收到客戶端的資料:"

0;}

實現相互通訊,連線後可以不斷傳輸資料。輸入0後退出。

使用visual studio建立兩個工程,執行其中的exe檔案。

socket程式設計(一)

1 socket可以看成是使用者程序與核心網路協議的程式設計介面。2 socket不僅可以用於本機的程序間通訊,還可以用於網路不同主機的程序間通訊。異構架構可以不同 手機pc ipv4套介面位址結構通常也稱為 網際套接字位址結構 它以sockaddr in命名,定義在標頭檔案中 struct soc...

socket程式設計(一)

1.socket可以看成是使用者程序與核心網路協議棧的程式設計介面。2.socket不僅可以用於本機的程序間通訊,還可以用於網路上不同主機的程序間通訊。底層那部分已經被核心實現了,也就是tcp ip協議棧已經屬於核心的一部分了,應用層是使用者要實現的,它屬於使用者程序的部分,也就是工作在使用者空間,...

Socket程式設計(一)

class program endpoint point new ipendpoint address,7788 封裝ip和埠號 server.bind point 3.開始監聽,等待客戶端做連線 server.listen 100 最大連線數是100 console.writeline serve...