socket程式設計入門(二)

2021-07-31 00:27:14 字數 1639 閱讀 3639

在動手編寫socket通訊程式之前,還需要補充一些可能用到的函式。本文列出這些函式。

accept

int accept(int sockfd,struct sockaddr* addr,socklen_t* addrlen)

從已完成連線佇列返回第乙個連線,如果已完成連線隊列為空,則阻塞,失敗返回-1

setsockopt(int sockfd,int level,int optname,const void* optval,socklen_t optlen);

用於設定套接字選項。sockfd:套接字描述符;level:指定系統中解釋選項的**或為通用套接字**,或者為某個特定於協議的**;(unp第三版卷一p151)

optval:待設定的新值;optlen:新值長度。

了解以上函式後,就可以編寫socket程式了,這裡選擇乙個比較簡單的示例:回射客戶伺服器。下面給出它的程式設計模型

**makefile

.phony

:clean all

cc=gcc -std=c99

cflags=-wall -g

#objs=cli.o srv.o

bin=cli srv

all:

$(bin)

cli:cli.o

$(cc) $(

cflags) $^ -o $@

srv:srv.o

$(cc) $(

cflags) $^ -o $@

.c.o:

$(cc) $(

cflags) -c $< -o $@

clean:

rm -rf $(

bin) *.o

cli:

#include 

#include

#include

#include

#include

#include

#include

#include

#include

#define err_exit(m)\

do\ while(0)

int main(int argc,char* argv)

; char recvbuf[1024] = ;

while(fgets(sendbuf,sizeof(sendbuf),stdin)!=null)

return

0;}

srv:

#include 

#include

#include

#include

#include

#include

#include

#include

#include

#define err_exit(m)\

do\ while(0)

int main(int argc,char* argv)

return

0;}

Socket程式設計入門 二

1.htons u short htons u short hostshort 功能 把乙個u short型別的值從主機位元組順序轉換為網路位元組順序 引數 乙個以主機位元組順序表示的16位數值 返回 網路位元組序表示的16位數值 2.htonl u long htonl u long hostlo...

Socket程式設計入門 一

1.word型別分析 word型別是乙個16位的無符號整型,定義如下 typedef unsigned short word 提供兩個位元組的儲存,在socket中這個兩個位元組可以分別用來表示主版本號和副版本號 2.makeword巨集 word makeword byte blow,byte b...

socket程式設計(二)

標頭檔案 功能 建立乙個套接字用於通訊 原型 int socket int domain,int type,int protocol 引數 domain 指定通訊協議族 protocol family type 指定socket型別,流式套接字sock stream,資料報套接字sock dgram...