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