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...