linux下C 實現TCP通訊

2021-08-01 20:07:36 字數 1514 閱讀 7567

udp教程可以檢視:

tcp通訊協議鏈結過程如下圖所示。

由上圖可看出

tcp的伺服器需要bind->listen->accept

tcp的客戶端需要connect

伺服器**如下:

#include 

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define port 7000

#define queue 20

int main()

/*listen*/

if(listen(ss, queue) == -1)

/*connect*/

struct sockaddr_in client_addr;

socklen_t length = sizeof(client_addr);

///成功返回非負描述字,出錯返回-1

int conn = accept(ss, (struct sockaddr*)&client_addr, &length); //目測需要客戶端部分的addr

if( conn < 0 )

while(1) else

if(retval == 0)else

/*使用者輸入資訊了,開始處理資訊並傳送*/

if(fd_isset(0, &rfds))}}

close(conn);

close(ss);

return

0;}

注意:伺服器是採用accept()返回的值進行收發資料。

客戶端**如下:

#include 

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define myport 7000

#define buffer_size 1024

int main()

while(1)else

if(retval == 0)else

/*使用者輸入資訊了,開始處理資訊並傳送*/

if(fd_isset(0, &rfds))}}

close(sock_cli);

return

0;}

注意客戶端是採用socket()的返回值進行收發資料。

備註:

socket()函式的引數選擇可以檢視部落格:

waldm

linux下c語言tcp通訊

tcp ip 協議組 應用層 ftp smtp http 傳輸層 tcp udp 網路層 ip icmp igmp 物理層 網路介面層 鏈路層 乙太網 令牌環網 fddi 例項 服務端 include include include include include include include i...

TCP通訊C 實現

tcp客戶端與伺服器端通訊模型 伺服器端實現 include include pragma comment lib,ws2 32 using namespace std void main if lobyte wsadata.wversion 1 hibyte wsadata.wversion 1 ...

C 實現TCP通訊

服務端 include initsock.h include include include include using namespace std cinitsock initsock 初始化winsock庫 sockaddr in serveraddr sockaddr in remoteadd...