Linux下socket程式設計之UDP

2021-08-02 00:14:20 字數 1672 閱讀 4069

**如下:

udp_client.c

#include

#include

#include

#include

#include

#include

#include

static

void usage(char* proc)

int main(int argc,char* argv)

int sock=socket(af_inet,sock_dgram,0);//要注意這裡和tcp不同

struct sockaddr_in server_addr;

server_addr.sin_family=af_inet;

server_addr.sin_port=htons(atoi(argv[2]));

server_addr.sin_addr.s_addr=inet_addr(argv[1]);

char buff[1024];

while(1)

}close(sock);

return

0;}

udp_server.c

#include

#include

#include

#include

#include

#include

#include

static

void usage(char*proc)

int main(int argc,char* argv)

int sock=socket(af_inet,sock_dgram,0);

if(sock<0)

struct sockaddr_in server_addr;

server_addr.sin_family=af_inet;

server_addr.sin_port=htons(atoi(argv[2]));

server_addr.sin_addr.s_addr=inet_addr(argv[1]);

if(bind(sock,(struct sockaddr*)&server_addr,sizeof(server_addr))<0)

char buff[1024];

struct sockaddr_in client_addr;

socklen_t len=sizeof(server_addr);

while(1)

}close(sock);

return

0;}

udp和tcp的區別不是很大,如果理解了tcp那麼udp也就很容易理解了,關鍵是要用好sendto和recvfrom兩個函式,其他的應該是問題不大。

下面我把這兩個函式拿出來大家看一下:

下面是測試udp伺服器和客戶端:

linux網路程式設計之Socket

一.socket socket可看作是使用者程序與核心網路協議的程式設計介面.socket可用於本機程序間的通訊,也可用於網路上不同主機間的程序通訊.下圖顯示的是各種網路協議的位址格式 1.struct socketaddr 通用位址結構 通過獲取某種socketaddr結構體的首位址,不需要知道具...

Linux下socket程式設計之多程序TCP伺服器端

如下 tcp server.c include include include include include include include static void usage char proc ssize t startup char ip,char port struct sockaddr ...

linux下socket程式設計

一 什麼是socket socket可以看成是使用者程序與核心網路協議棧的程式設計介面。socket不僅可以用於本機的程序間通訊,還可以用於網路上不同主機的程序間通訊。socket api是一層抽象的網路程式設計介面,適用於各種底層網路協議,如ipv4 ipv6。struct sockaddr in...