linux TCP程式設計示例

2021-10-04 10:27:50 字數 4408 閱讀 2907

linux tcp程式設計

主要是這幾個函式

socket()

send/recv()/write()/read()

close()

伺服器端專用

bind()

listen()

accept()

客戶端專用

connect()

tcp客服端

tcp_client.c

//-------tcp相關標頭檔案------

#include

#include

#include

#include

#include

//close()

static

int socket_fd =0;

//tcp_client_init()

//1、建立socket

//2、配置為客戶端

//3、配置要連線的伺服器ip和埠以及協議型別

//4、連線伺服器

//5、收發資料

//6、關閉連線

inttcp_client_init

(char

*ip,

int port)

//3

struct sockaddr_in servaddr;

servaddr.sin_family = af_inet;

//ipv4協議

servaddr.sin_port =

htons

(port)

;//伺服器端口號

servaddr.sin_addr.s_addr =

inet_addr

(ip)

;//設定伺服器

//4 ret =

connect

(socket_fd,

&servaddr,

sizeof

(servaddr));

if(ret ==-1

)}//tcp_client_send()

inttcp_client_send

(char

*buff,

int len)

//tcp_client_rcv()

inttcp_client_rcv

(char

*buff,

int len)

//tcp_client_close()

inttcp_client_close()

tcp_client.h

#ifndef __tcp_client_h

#define __tcp_client_h

inttcp_client_init

(char

*ip,

int port)

;int

tcp_client_send

(char

*buff,

int len)

;int

tcp_client_rcv

(char

*buff,

int len)

;int

tcp_client_close()

;#endif

main.c

#include

#include

"tcp_client.h"

intmain()

;//tcp_client_init("192.168.1.123", 1000);

tcp_client_init

("192.168.109.1"

,1000);

while(1

)}}

makefile

cc=gcc

target=main_tcp_client

objs=tcp_client.o main.c

$(target)

:$(objs)

$(cc)

$(objs)

-o $(target)

tcp_client.o:tcp_client.c

$(cc)

-c tcp_client.c

clean:

rm -rf $(target)

*.o

服務端**示例

tcp_sever.c

//-------tcp相關標頭檔案------

#include

#include

#include

#include

#include

//close()

static

int socket_fd =0;

static

int socket_c_fd =0;

//tcp_server_init()

#if 0

1、建立socket

2、設定本地ip和埠以及協議型別

3、繫結

4、監聽

5、等待客戶端連線

6、收發資料

7、關閉連線

#endif

inttcp_server_init

(int port)

//2

struct sockaddr_in local_addr,c_addr;

local_addr.sin_family = af_inet;

//ipv4協議

local_addr.sin_port =

htons

(port)

;//伺服器端口號

local_addr.sin_addr.s_addr = inaddr_any;

//設定伺服器ip

//3 ret =

bind

(socket_fd,

&local_addr,

sizeof

(local_addr));

if(ret ==-1

)//4

ret =

listen

(socket_fd,3)

;if(ret ==-1

)//5

socklen_t addrlen =0;

while(1

)printf

("client conect\n");

}//tcp_server_send()

inttcp_server_send

(char

*buff,

int len)

//tcp_server_rcv()

inttcp_server_rcv

(char

*buff,

int len)

//tcp_server_close()

inttcp_server_close()

tcp_server.h

#ifndef __tcp_server_h

#define __tcp_server_h

inttcp_server_init

(int port)

;int

tcp_server_send

(char

*buff,

int len)

;int

tcp_server_rcv

(char

*buff,

int len)

;int

tcp_server_close()

;#endif

main.c

#include

#include

"tcp_server.h"

intmain()

;tcp_server_init

(8080);

while(1

)}}

makefile

cc=gcc

#target=main_tcp_client

target=main_tcp_server

objs=tcp_client.o tcp_server.o main.c

$(target)

:$(objs)

$(cc)

$(objs)

-o $(target)

tcp_client.o:tcp_client.c

$(cc)

-c tcp_client.c

tcp_server.o:tcp_server.c

$(cc)

-c tcp_server.c

clean:

rm -rf $(target)

*.o

Linux TCP通訊示例

tcp通訊流程 server.h include include include include include include include define max line 100 用於將大寫字元轉換為小寫字元。引數為需要轉換的字串 void my fun char p int main voi...

Linux TCP套接字程式設計

服務端程式設計的步驟如下 建立服務端套接字。繫結套接字到乙個ip位址和乙個埠上 使用bind函式 將套接字設定為監聽模式等待連線請求 使用函式listen 這個套接字就是監聽套接字了。請求到來後,接受連線請求。返回乙個新的對應此連線的套接字。用返回的新的套接字和客戶端進行通訊,即傳送或接收資料 使用...

Linux TCP協議程式設計流程

tcp協議 面向連線的,可靠的 位元組流服務 udp協議 無連線的,不可靠的,資料報服務 伺服器 一般為被動通訊 客戶端 一般為主動通訊 1 伺服器端程式設計流程 1 int socket 建立乙個用於監聽客戶端鏈結的網路套接字 int socket int domain,int type,int ...