TCP伺服器 客戶端程式

2021-06-01 07:52:40 字數 1725 閱讀 9200

server:

//

// tcpserver.cpp檔案

#include "../common/initsock.h"

#include cinitsock initsock; // 初始化winsock庫

int main()

// 填充sockaddr_in結構

sockaddr_in sin;

sin.sin_family = af_inet;

sin.sin_port = htons(4567);

sin.sin_addr.s_un.s_addr = inaddr_any;

// 繫結這個套節字到乙個本地位址

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

// 進入監聽模式

if(::listen(slisten, 2) == socket_error)

// 迴圈接受客戶的連線請求

sockaddr_in remoteaddr;

int naddrlen = sizeof(remoteaddr);

socket sclient;

char sztext = " here is the server! \r\n";

while(true)

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

// 向客戶端傳送資料

::send(sclient, sztext, strlen(sztext), 0);

// 關閉同客戶端的連線

::closesocket(sclient);

} // 關閉監聽套節字

::closesocket(slisten);

return 0;

}

client:

//

// tcpclient.cpp檔案

#include "../common/initsock.h"

#include cinitsock initsock; // 初始化winsock庫

int main()

// 也可以在這裡呼叫bind函式繫結乙個本地位址

// 否則系統將會自動安排

// 填寫遠端位址資訊

sockaddr_in servaddr;

servaddr.sin_family = af_inet;

servaddr.sin_port = htons(4567);

// 注意,這裡要填寫伺服器程式(tcpserver程式)所在機器的ip位址

// 如果你的計算機沒有聯網,直接使用127.0.0.1即可

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

if(::connect(s, (sockaddr*)&servaddr, sizeof(servaddr)) == -1)

// 接收資料

char buff[256];

int nrecv = ::recv(s, buff, 256, 0);

if(nrecv > 0)

// 關閉套節字

::closesocket(s);

return 0;

}

結果:

python 建立TCP伺服器 客戶端程式

tcp伺服器程式 tstserv.py from socket import from time import ctime host port 21567 bufsiz 1024 addr host,port tcpsersock socket af inet,sock stream tcpsers...

基於TCP協議的伺服器 客戶端程式

前面我們初步學習了資料流套接字程式設計的一些基礎知識,下面我們來學習如何具體實現這一網路通訊流程。首先我們看一下使用tcp協議進行網路通訊的程式基本模型,如圖7 3所示。伺服器首先進行初始化操作 呼叫函式socket建立乙個套接字,函式bind將這個套接字與伺服器的公認位址繫結在一起,函式liste...

伺服器和客戶端 tcp通訊

在vs2013的環境下,伺服器 如下 include include stdafx.h include pragma comment lib,ws2 32.lib using namespace std define buffer rev 1024 define buffer send 1024 i...