Tcp/ip 编程基础 -- 基本函数说明

前言,这里有一篇文章,里面的例子亲测可用,需要的童鞋可以亲自尝试下

http://www.cnblogs.com/xudong-bupt/archive/2013/12/29/3483059.html

---- 言归正传----

二、Tcp/ip 编程基础

1、创建网络接口函数:socket

  需要的头文件:(可以用 man socket  查看相关信息,之后不再罗列头文件,不知道的自行百度或者man)

     #include  <sys/types.h>

     #include  <sys/socket.h>

   原型:int socket(int domain, int type, int protocol);

     创建成功:返回该套接字的文件描述符;失败:-1

domain: 网络通信的域

 type:套接字通信的类型

  protocol:一般情况下都为 0.

2、对套接字进行地址和端口的绑定:bind()

   原型:int bind(int sockfd, const struct sockaddr *my_addr, socklen_taddrlen );

   绑定成功:0;  失败:-1

   Sockfd:socket()返回的文件描述符

      Sockaddr(sockaddr_in) *my_addr :结构体中设定 需要的1.通信的域,协议族  2.端口 3.IP地址

      addrlen: 参数2结构体的长度一般写为:sizeof(struct sockaddr)

  3、监听本地端口(仅 服务器使用):listen

      原型: int listem(intsockdf, int backlog);

      成功返回:0;   失败返回:-1;

      只监听类型为SOCK_STREAM和SOCK_SEQPACKET

 4、接受一个网络的请求 accept

   原型: int accept(intsockfd, struct sockaddr *addr, socklen_t *addrlen);

    sockfd: 可以认为是服务器创建的socket的文件描述符

    struct sockaddr *addr: 存放连入的client的协议族,prot,IP地址等信息

    *addrlen: sozeof(sockaddr_in)

  5、 连接目标网络服务器 connect()

   客户端不需要监听本地,通过connect()连接到服务器

    原型: int connect(intsockfd, struct sockaddr_in *, int addrlen);

    sockfd: 服务器的文件描述符

    struct sockaddr_in *: 目标服务器的协议族,port,IP地址等信息

    addrlen: sizeof(struct sockaddr_in)

  6、 写入函数write()   //send()

    int write(int conn_sockfd, char *buffer,int data_len);//示例

    conn_sockfd: clien和server二者相联系的文件描述符,accept返回的文件描述符

    buffer:要发送的数据

data_len:数据长度

  7、读取函数read()     //recv()

    int read (int conn_sockfd, char *buffer,int data_len);//示例

    conn_sockfd: clien和server二者相联系的文件描述符,accept返回的文件描述符

    buffer:读取数据的缓冲区

data_len:数据长度

8、关闭套接字 close()

  int close(int sockfd);

  一般关闭的时候需要将accept成功返回的套接字也关掉,即

     close(conn);

     close(server_sockfd);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值