linuxC套接字socket:帮我记住

原创 2012年03月28日 22:54:09

*套接字是一种通信机制,可以编写客户/服务端夸网络的通信程序。

*如何通过套接字来维持一个连接的?

 1. 服务端调用socket()创建一个套接字,套接字是类似于文件描述符的资源。

 2.服务端给套接字娶个名字  bind()  即绑定好地址。(1. 本地:socket文件名  就是名字  (2. 网络:端口号+IP地址  (通过端口,我们可以转到正确的服务器运行的那个进程)

 3.创建队列存放客户连接:listen()   ,   并一个一个的接收客户连接: accept()  .   accept()会创建一个新的套接字,仅用于该客户进行通信,而那个命名的套接字则继续等待其他客户的连接

 4.关闭子套接字。

              ------以上是服务端的socket编写------

              ------以下是客户端的socket编写------

 1.调用socket()创一个未命名套接字。

 2.将服务器命名套接字作为一个地址,通过connect来创建连接。

 3.关闭套接字。

------注意:套接字的连接建立好了之后,我们就可以像底层描述符一样使用read() write()函数来读写通信罗。

*套接字3属性: 1 域 (本地,网络)  2.类型 (流,数据报)  3.协议(一般为0,因为流就是tcp/ip ,数据报就是udp)

*网络套接字,必须在通信之间,绑定一个端口,因为要靠端口来访问呀。 最好使用1024以下的端口哦。那个是系统占用端口

*流:可以确保数据的顺序,稳定,完整,不丢失,会维持一个连接,直到数据都完了才over

 报:不能确保数据的稳定,不可靠,无序,会丢失,不会维持一个连接 ,在局域网,udp还是很可靠的。

*主机字节序  和 网络字节序 。 我们必须统一转换为网络字节序列,来达到传输效果。

数据报的socket编程与tcp/ip一样,只是他把 read() 换成了 sendto()  ,把write()  换成了 recvfrom() .

插入代码:524页。

相关文章推荐

linuxC多线程:帮我记住

多线程: * 头文件 , 链接库  -lpthread  , pthread_t 类型   pthread_attr_t 属性类型 * 3个常用函数:     int pthread_crea...

Java 套接字(Socket)

  • 2010年07月01日 22:47
  • 87KB
  • 下载

使用DatagramSocket发送、接收数据(Socket之UDP套接字)

17.4.2 使用DatagramSocket发送、接收数据(1) Java使用DatagramSocket代表UDP协议的Socket,DatagramSocket本身只是码头,不维护状态,不...

java中socket套接字定义与使用

  • 2015年03月27日 13:28
  • 56KB
  • 下载

socket:通常每个套接字地址(协议/网络地址/端口)只允许使用一次

今天在自己写的C/S的Server端重启监听时遇到的问题,原因应该是正在Accept状态的listenSocket未能关闭,二次分配相同的端口时引发了异常。网上查看了多人的观点,随手记一下。 大致的处...

socket(网络套接字)传输图片

  • 2017年08月28日 15:08
  • 3KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:linuxC套接字socket:帮我记住
举报原因:
原因补充:

(最多只允许输入30个字)