网络编程——socket套接字的使用(一)
来源:互联网 发布:淘宝窗帘拍摄技巧 编辑:程序博客网 时间:2024/05/29 18:44
1、socket函数
函数的作用:建立一个新的socket套接字
函数的原型:int socket(int domain,int type,int protocol)
参数:domain:表示使用何种的地址类型;AF_INET:IPV4;AF_INET6:IPV6
type:SOCK_STREAM:TCP,面向数据流的;SOCK_DGRAM:UDP,使用不连续不可信赖的数据包连接
protocol:传输协议编号,设为0即可
头文件:#include<sys/socket.h>
返回值:成功:返回socket套接字描述符;出错:-1;
2、bind函数
函数的作用:绑定IP地址
函数的原型:int bind(int sockfd,struct sockaddr *my_addr,int addrlen)
参数:sockfd:socket套接字描述符
my_addr:主机地址
addrlen:sockaddr的地址长度
其中struct sockaddr_in
{
unsigned short int sin_family;
uint16_t sin_port;//端口号
struct in_addr sin_addr;//IP地址
unsigned char sin_zero[8];//未使用
};
struct in_addr
{
uint32_t s_addr;
};
头文件:#include<sys/types.h>
#include<sys/socket.h>
返回值:成功:0;出错:-1
3、connect函数
函数的作用:建立socket连接,通常客户端连接服务器使用
函数的原型:int connect(int sockfd,struct sockaddr *serv_addr,int addrlen)
参数:serv_addr:表示要连接的服务器的IP地址
addrlen:struct sockaddr的长度
返回值:成功:0;出错:-1
4、listen函数
函数的作用:聆听网络,等待连接
函数的原型:int listen(int sockfd,int backlog)
参数:sockfd:描述符
backlog:允许接入的客户端的数目
返回值:成功:0;出错:-1;
注意:listen并没有连线,只是设置socket的listen模式而已,真正连接的是accept
5、accept函数
函数的作用:接收网络连接,客户端连接,三次握手在这个地方
函数的原型:int accept(int sockfd,struct sockaddr *addr,int *addrlen)
参数:addr:连接成功,填充远端客户机的地址
addrlen:struct sockaddr的长度
6、send函数
函数的作用:经过socket传送数据;向对方发送数据
函数的原型:int send(int sock_fd,void *msg,int len,int *addrlen)
参数:addr:连接成功,填充远端客户机的地址
返回值:成功:返回新的sock_fd;出错:-1
7、recv函数
函数的作用:经过socket接收数据
函数的原型:int recv(int sock_fd,void *buf,int len,unsigned int flags)
函数的参数:sock_fd:accept以后的socket套接字描述符
buf:存放地址
len:接收数据的最大长度
返回值:成功:接收的字节数;出错:-1
等
- 网络编程——socket套接字的使用(一)
- 网络编程——Socket(Linux套接字编程)
- 网络编程——socket套接字编程(二)
- 网络编程——socket套接字编程(三)
- 网络编程——Socket(套接字)
- Socket套接字编程(一)——TCP编程
- 网络编程笔记一、Socket套接字
- linux网络编程——套接字(socket)入门
- 网络编程:InetAddress类,Socket套接字的使用
- Windows Socket 网络编程—— 套接字编程原理
- Java 网络编程(五) 使用TCP/IP的套接字(Socket)进行通信
- 网络编程socket套接字
- socket编程(一)---- 套接字
- Linux网络编程【一】:TCP socket套接字详解
- [java]网络编程(Socket编程、套接字编程)
- 套接字网络编程基础(一)
- (四十九)socket编程——网络套接字函数及建立C/S模型(TCP)
- socket网络编程复习笔记(一):套接字基本原理(上)
- [uboot] (番外篇)uboot relocation介绍
- 深入MTK平台bootloader启动之【 lk -> kernel】分析笔记
- SVG裁剪和平移的顺序
- python2
- swiper.animate
- 网络编程——socket套接字的使用(一)
- 推免后的生活(16/11/4~27)
- android graphic(6)—surfaceflinger和MessageQueue
- 【设计模式】《Head First 设计模式》读书笔记——装饰者模式
- 10张图带你深入理解Docker容器和镜像
- cqround_7 游记
- 今日学习感悟
- //6. ZigZag Conversion --String类型
- AngularJS (一)