網路程式設計學習 tcp ip程式設計

2021-07-23 06:43:32 字數 4114 閱讀 2660

tcp :不記錄訊息邊界

udp:記錄訊息邊界

用到的結構體

struct sockaddr_un

;

例子:struct sockaddr_un serveraddr;

serveraddr.sun_family = af_unix;

= "server_socket";

strcpy(serveraddr.sun_path, 「server_socket」);

3、udp本地通訊

流程:

伺服器:

建立套接字 socket

填充本地資訊結構體 sockaddr_un

繫結套接字 bind

通訊 recvfrom/sendto

客戶端:

建立套接字 socket

填充本地資訊結構體 sockaddr_un

通訊 sendto/recvfrom (如果需要接受伺服器的資訊,需要繫結)

4、tcp本地通訊

伺服器(server)

#include 

#include

#include

#include

#include

#include

//實現tcp本地通訊伺服器

#define n 128

#define errlog(errmsg) dowhile(0)

int main(int argc, const

char *argv)

; socklen_t addrlen = sizeof(struct sockaddr_un);

//建立套接字 socket

if((sockfd = socket(af_unix, sock_stream, 0)) < 0)

//填充本地資訊結構體 sockaddr_un

serveraddr.sun_family = af_unix;

strcpy(serveraddr.sun_path, "server_socket");

//繫結套接字 bind

if(bind(sockfd, (struct sockaddr *)&serveraddr, sizeof(serveraddr)) < 0)

//將套接字設定為監聽狀態 listen

if(listen(sockfd, 10) < 0)

//阻塞等待客戶端的連線請求 accept

if((acceptfd = accept(sockfd, (struct sockaddr *)&clientaddr, &addrlen)) < 0)

//通訊 recv/send

while(1)

printf("from client >>> %s\n", buf);

strcat(buf, " from client ...");

if(send(acceptfd, buf, n, 0) < 0)

}close(acceptfd);

close(sockfd);

return

0;}

客戶端(client)

#include 

#include

#include

#include

#include

#include

//實現tcp本地通訊客戶端

#define n 128

#define errlog(errmsg) dowhile(0)

int main(int argc, const

char *argv)

; socklen_t addrlen = sizeof(struct sockaddr_un);

//建立套接字 socket

if((sockfd = socket(af_unix, sock_stream, 0)) < 0)

//填充本地資訊結構體 sockaddr_un

serveraddr.sun_family = af_unix;

strcpy(serveraddr.sun_path, "server_socket");

//傳送客戶端的連線請求 connect

if(connect(sockfd, (struct sockaddr *)&serveraddr, addrlen) < 0)

//通訊 recv/send

while(1)

if(recv(sockfd, buf, n, 0) < 0)

printf("%s\n", buf);

}close(sockfd);

return

0;}

4、udp本地通訊

伺服器(server)

#include 

#include

#include

#include

#include

#include

#include

#include

#include

#define n 128

#define errlog(errmsg) dowhile(0)

int main(int argc, const

char *argv)

; //memset bzero 清空結構體(初始化)

//建立套接字

if((sockfd = socket(af_unix, sock_dgram, 0)) < 0)

//填充本地資訊結構體

serveraddr.sun_family = af_unix;

strcpy(serveraddr.sun_path, "server_socket");

//將套接字與ip位址和埠號繫結

if(bind(sockfd, (struct sockaddr *)&serveraddr, sizeof(serveraddr)) < 0)

while(1)

if(strncmp(buf, "quit", 4) == 0)

else}}

close(sockfd);

return

0;}

客戶端(client)

#include 

#include

#include

#include

#include

#include

#include

#include

#include

#define n 128

#define errlog(errmsg) dowhile(0)

int main(int argc, const

char *argv)

; socklen_t addrlen = sizeof(struct sockaddr_un);

//建立套接字

if((sockfd = socket(af_unix, sock_dgram, 0)) < 0)

//填充網路資訊結構體

serveraddr.sun_family = af_unix;

strcpy(serveraddr.sun_path, "server_socket");

//填充客戶端網路資訊結構體

clientaddr.sun_family = af_unix;

strcpy(clientaddr.sun_path, "client_socket");

//繫結客戶端的資訊

if(bind(sockfd, (struct sockaddr *)&clientaddr, addrlen) < 0)

while(1)

if(strncmp(buf, "quit", 4) == 0)

else

printf("%s\n", buf);}}

close(sockfd);

return

0;}

TCP IP網路程式設計

tcp ip 是供已連線網際網路的計算機進行通訊的通訊協議。tcp ip 定義了裝置 並非只有計算機 如何連入網際網路,以及資料如何在它們之間傳輸的標準。ip internet protocol 網際網路協議。從這個名稱我們就可以知道ip協議的重要性。在現實生活中,我們進行貨物運輸時都是把貨物包裝成...

TCP IP網路程式設計

套接字 傳輸網路資料的軟體裝置。tcp的特點 可靠的 按序傳遞的 基於位元組的面向連線的資料傳輸方的協議。傳輸過程中資料不會消失,按序傳輸資料,傳輸的資料不存在資料邊界。udp的特點 不可靠的 無序的 以資料高速傳輸為目的的協議。強調快速傳輸而非傳輸順序,傳輸的資料可能丟失也可能損壞,傳輸的資料有資...

Java學習之網路程式設計 TCP IP

socket通訊 基於tcp協議,建議穩定連線的點對點的通訊。實時 快速 安全性高 占用系統資源多 效率低 請求 響應模式 request response 客戶端伺服器 socket 傳送tcp訊息 serversocket 建立伺服器 套接字 是一種程序間的資料交換機制。這些程序既可以在同一機器...