linux网络编程(一)

socket通信涉及的基本函数有:
(1)创建套接字
sockfd=socket(domain, type, protocol);参数domain指定socket地址簇类型,type为套接字类型,protocol指明socket请求的协议,sockfd为套接字返回的文件描述符。

例子:

SOCKET PASCAL FAR socket( int af, int type, int protocol);
af:一个地址描述。目前仅支持AF_INET格式,也就是说ARPA Internet地址格式。
type:指定socket类型。新 套接口的类型描述类型,如TCP(SOCK_STREAM)和UDP(SOCK_DGRAM)。常用的socket类型有,SOCK_STREAM、SOCK_DGRAM、SOCK_RAW、SOCK_PACKET、SOCK_SEQPACKET等等。
protocol:顾名思义,就是指定协议。 套接口所用的协议。如调用者不想指定,可用0。常用的协议有,IPPROTO_TCP、IPPROTO_UDP、IPPROTO_SCTP、IPPROTO_TIPC等,它们分别对应TCP传输协议、UDP传输协议、STCP传输协议、TIPC传输协议。
(2)绑定套接字与本地地址信息
bind(sockfd,(struct sockaddr*)& amp;server_addr,sizeof(struct sockaddr));该函数将本地主机地址以及端口号与所创建的套接字绑定起来。
(3)监听连接
listen(sockfd,backlog);此函数表示服务器愿意接收连接,backlog指队列中允许的最大排队请求的个数。
(4)建立连接
connect(sockfd,(struct sockaddr*) &server_addr,sizeof(struct sockaddr));connect用于建立连接,server_addr是保存着服务器IP地址和端口号的数据结构struct sockaddr。
(5)接收连接请求
accept(sockfd,(struct sockaddr*) &client_addr,sizeof(struct sockaddr));用于接收客户机发来的连接请求。
(6)发送数据
send(sockfd, msglen,flags);将len字节的数据msg发送出去,flags通常为0。
(7)接收数据
recv(sockfd, buf,len,flags);从套接字缓冲区buf中读取len字节长度的数据。
(8)关闭套接字
close(sockfd);用于关闭套接字连接。
 socket通信过程
套接字编程采用客户机/服务器(C/S)模式,连接成功后,双方可以进行通信。通信过程如图1所示。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值