Linux網路程式設計基礎 TCP伺服器程式實現

2021-10-03 04:28:57 字數 1735 閱讀 8507

1)呼叫socket函式建立套接字檔案

2)呼叫bind函式繫結ip和埠

3)呼叫listen函式將套接字檔案轉為被動描述符

4)呼叫accept函式監聽客戶連線

5)呼叫send函式傳送資料

6)呼叫recv函式接收資料

7)呼叫shutdown函式結束連線

示例:

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define sip "192.168.239.128"

//存放伺服器固定ip的巨集

#define sprot 5006

//存放伺服器程序固定埠的巨集

/*封裝應用層資料,目前要傳送的資料為學生資訊*/

typedef

struct data

data;

void

print_err

(char

* str,

int line,

int err_no)

//報錯函式

int cfd =-1

;/*通訊套接字檔案*/

void

signal_fun

(int signo)

}/*次執行緒用於接收客戶端資料 */

void

*pth_fun

(void

* pth_arg)

;int ret =-1

;while(1

)}}int

main()

;int clnaddr_size =

sizeof

(clnaddr)

; cfd =

accept

(sockfd,

(struct sockaddr *

)&clnaddr,

&clnaddr_size);if

(cfd ==-1

)print_err

("accept error"

,__line__

,errno)

;/*列印客戶端的ip和埠號 注意要進行端序轉換 */

printf

("clint_port = %d\n clint_ip = %s\n"

,ntohs

(clnaddr.sin_port)

,inet_ntoa

(clnaddr.sin_addr));

/*建立乙個次執行緒,用於接收客戶端的資訊*/

pthread_t tid;

ret =

pthread_create

(&tid,

null

,pth_fun,

null);

if(ret !=0)

print_err

("pth_create fail"

,__line__

,ret)

;/*伺服器迴圈傳送資料 */

data stu_data =

;int tmp;

while(1

)return0;

}

tcp網路程式設計基礎

1.tcp客戶端 from socket import 建立socket tcp client socket socket af inet,sock stream 目的資訊 server ip input 請輸入伺服器ip server port int input 請輸入伺服器port 鏈結伺服器...

TCP網路程式設計基礎

1 套接字結構 struct sockaddr 上述結構中協議族成員變數sa family的型別是sa family t,其實這個型別是unsigned short型別,因此成員變數sa family的長度為16位。typedef unsigned short sa family t 通用套接字結構...

Linux 網路程式設計 TCP

一 tcp通訊步驟 tcp伺服器部分 1 呼叫函式socket 建立乙個socket 2 設定sockaddr in資訊,如要連線伺服器的ip和埠等屬性 3 呼叫函式bind 繫結ip位址 埠等資訊到socket上 4 呼叫函式listen 設定允許的最大連線數 5 呼叫函式accept 等待來自客...