基於TCP套接字實現的簡單Demo

2021-06-22 17:20:56 字數 2190 閱讀 7978

由於**的注釋已經很詳盡了,所以這裡不再作過多說明.

僅僅貼出**和結果圖.

值得注意的是必須先啟動server程式再啟動client.

server:

#include //套接字型檔

#include #define port 6000 //伺服器端口

#define msgsize 1024 //收發緩衝區的大小

#pragma comment(lib, "ws2_32.lib") //鏈結靜態庫

dword winapi funthread(lpvoid); //建立乙個執行緒,專門用來接收資料

socket sclient; //連線所用套節字

socket slisten; //監聽套接字

sockaddr_in client; //儲存客戶的位址資訊

int iaddrsize = sizeof(sockaddr_in);

int main()

return 0;

} //當接收資料時呼叫此執行緒函式

dword winapi funthread(lpvoid)

c_message[ret] = '\0';

printf("\nreceived: %s\n", c_message);

} return 0;

}

client:

#include //套接字型檔

#include #define server_address "127.0.0.1" //伺服器端ip位址,由於服務也在本地機器上所以用環迴位址127.0.0.1

#define port 6000 //客戶端繫結埠

#define msgsize 1024 //客戶端接收資料緩衝區大小

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

dword winapi funthread(lpvoid); //對於客戶端接收資料的執行緒函式

socket sclient; //客戶端套接字

sockaddr_in server; //伺服器端套接字

int main()

// 釋放連線和進行結束工作

closesocket(sclient);

wsacleanup();

return 0;

}//接收執行緒函式

dword winapi funthread(lpvoid)

s_message[ret] = '\0';

//顯示接收資料

printf("\nreceived: %s\n", s_message);

//如果伺服器端傳送exit則client退出

if(!strcmp(s_message,"exit"))//server讓client退出

exit(1);

} return 0;

}

執行結果如下:

後面的文章我將會介紹套接字的基礎以及**中涉及的createthread.

**中難免bug,望讀者批評指正.

基於tcp協議的套接字

簡單版本 一 服務端 import socket 1 買手機 拿到套接字物件,用來鏈結建立鏈結 phone socket.socket socket.af inet,socket.sock stream tcp稱為流式協議sock stream,udp稱為資料報協議sock dgram print ...

基於tcp的套接字程式設計

伺服器端 1 author kelvin2 date 2019 1 28 22 10 3from socket import 4 server socket.socket af inet,sock stream 5 server.setsockopt sol socket,so reuseaddr,...

基於TCP協議的套接字程式設計

socket是應用層與tcp ip協議族通訊的中間軟體抽象層,它是一組介面。在設計模式中,socket其實就是乙個門面模式,它把複雜的tcp ip協議族隱藏在socket介面後面,對使用者來說,一組簡單的介面就是全部,讓socket去組織資料,以符合指定的協議。socket模板已經為我們封裝好了,我...