服务器:                                                                 客户端

      socket()                                                       socket()

      bind()                                                     connect()

      listen()                                                  

      accept()

                                 

  开始阻塞直到                                            write()

客户端链接到来                                           写,发送信息

 

read()                                                     read()

 

write()                                                    close()

 

read()

close()

 

socket函数:为了执行网络i/o,一个进程做的第一件事就是调用socket函数,得到文件描述符;

connect()函数:tcp客户用此函数来建立与tcp服务器的链接;

bind函数:把一个本地协议地址赋予一个套接字,绑定端口;

Listen()函数:仅由TCP服务器调用,监听,调用connect发起链接的客户套接字;

Accept()函数:由TCP服务器调用,用于从已完成的链接队头,返回下一个已经完成的链接;

 

网络编程è 套接字:是一组用于编写网络程序的API

 

套接字类型:

      Stream socket :面向流的一种套接字

           包括:telnet         http           tcp..    

      Datagram socket:面向数据包的一种套接字

           包括:udp tftp  bootp..

      Raw socket :原始套接字,具有最小的封装,最大的灵活;

      如果开发自己的协议和发送包,需要用到Raw  socket

数据封装:

      是指原始数据被层层封装在不同层次的数据包中,最终进入到物理层传输,到达目标机器后,再被层层解析出来,还原为原始数据;

      Socket为程序员完成所有的底层数据封装,程序员只要将发送的数据提交给socket API函数,API函数完成其他所有的工作,一方面带来了便利,保证正确,一方面阻止了个性与自定义的灵活;

 

 

 

posted on 2011-02-08 16:17  Please  阅读(413)  评论(0编辑  收藏  举报