钢制展柜厂家
免费服务热线

Free service

hotline

010-00000000
钢制展柜厂家
热门搜索:
行业资讯
当前位置:首页 > 行业资讯

Linux操作系统网络编程函数

发布时间:2021-01-22 02:25:32 阅读: 来源:钢制展柜厂家

listen system call

listen()监听套接字上的连接

listen(int sockfd, int backlog) ;

2.被动监听的socket

3.需要在此前调用bind()函数,否则由系统指定一个随机的端口

4.成功返回0,失败返回-1。

连接队列

1.一个新的Client的连接请求先被放在连接队列中,等待Server程序调用accept函数接受连接请求

cklog指的就是接收队列的长度,亦即Server程序调用accept函数之前最大允许的连接请求数,多余的连接请求将被拒绝

accept system call

accept()函数将响应连接请求,建立连接

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

cept缺省是阻塞函数,阻塞直到有连接请求

ckfd:被动(监听)的socket描述符

4.如果成功,返回一个新的socket描述符(connected socket descriptor)来描述该连接。这个连接用来与特定的Client交换信息,原来的socket描述符继续保持非连接监听。如果失败则返回-1

dr将在函数调用后被填入连接对方的地址信息,如对方的IP、端口等。

connect system call

客户端使用connect()函数连接到主机

int connect(int sockfd, struct sockaddr * servaddr, int addrlen) ;

主动的socket

servaddr是事先填写好的结构,Server的IP和端口都在该数据结构中指定。

通常connect将阻塞直到服务器响应为止。

成功返回0,失败返回-1。

send/recv

面向连接的socket数据通讯

int send(int sockfd, const void * msg, size_t len, int flag ) ;

int recv(int sockfd, void * buf, size_t len, int flag ) ;

数据发送/接收函数,成功返回实际发送/接收的字节数,失败返回-1

与write/read比较

ssize_t write(int fd, const void * buf, size_t count);

ssize_t read(int fd, void *buf, size_t count);

flag:

nd:MSG_OOB, MSG_DONTROUTE,MSG_DONTWAIT,MSG_NOSIGNAL, ...

cv:MSG_OOB, MSG_PEEK,MSG_WAITALL,MSG_NOSIGNAL,…

OOB(out-of-band),一般用于紧急特殊数据。

sendto/recvfrom

面向数据报的socket通讯sendto/recvfrom

int sendto(int sockfd, const void *msg, size_t len, int flags, const

struct sockaddr *to, socketlen_t tolen) ;

int recvfrom(int sockfd, void *buf, size_t len, int flags, struct

sockaddr *from, socklen _t *fromlen);

close&shutdown

close关闭套接字

close(int sockfd);

shutdown按指定方式关闭套接字

shutdown(int sockfd, int how);

w:SHUT_RD,SHUT_WR,SHUT_RDWR

shutdown直接对TCP连接进行操作,close只是对套接字描述符操作。

getsockopt&setsockopt

检查与修改套接字选项

int getsockopt(int socket, int level, int optname,

void *optval, socklent *optlen-ptr)

int setsockopt(int socket, int level, int optname,

void *optval, socklent optlen)

level为操作级别,当为普通socket级时,设为SOL_ SOCKET,否则设为操作控制选项对应的协议号,如TCP选项为IPPROTO_TCP,IP选项为IPPROTO_IP。

Host name and address conversions

Files:

1./etc/nf, /etc/hosts

Functions

#include

struct hostent *gethostbyname(const char *name);

struct hostent *gethostbyaddr(const char *addr, size_t len, int format);

struct hostent

struct hostent {

char *h_name; /* official name of host */

char **h_aliases; /* alias list * /

int h_addrtype; /* host address type, AF_INET/ AF _INET6 */

int h_length; /* length of address */

char **h_addr_list; /* list of addresses */

};

疾风大冒险

彩票app软件官方

精灵战纪BT

正版台湾乐透彩下载