【黑马程序员】网络编程

---------------------- Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------

一、Socket相关概念

Socket的英文原义是“孔“或”插座“,作为通信机制通常称作”套接字”,用于描述IP地址和端口,是一个通信链的句柄

Socket非常类似于电话插座,以一个电话网为例,电话的通话双方相当于相互通信的2个程序,电话号码就是IP地址,任何用户在通话之前,首先要占有一部电话机,详单与申请了一个Socket,同时要知道对方的号码相当于对方有一个固定的Socket,然后向对方拨号呼叫,相当于发出连接请求,对方假如在场并空闲,拿起电话话筒双方就可以正式通话相当于连接成功,双方通话的过程,是一方向电话机发出信号和对方从Socket提交接受数据,通话结束后,一方挂起电话相当于关闭Socket,撤销连接。

Internet上有很多这样的主机,这些主机一般运行了多个服务软件,同时提供了几种服务,每种服务都开了一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务(应用程序)

Socket两种类型:

流式SocketSTREAM

是一种面向连接的Socket,针对于面向连接的TCP服务应用,安全但是效率低

数据报式SocketDATAGRAM

是一种无连接的Socket对应于无连接的UDP服务应用,不安全。

Socket一般应用模式:

服务端的Socket(至少两个)

 一个负责接收客户端连接请求(但不负责与客户端通信)

 每成功接收到一个客户端的连接便在服务端产生一个应对的Socket

  在接收到客户端连接时创建

  为每个连接成功的客户端请求在服务端都创建一个对应的Socket(负责各客户端通信)

客户端的Socket

  客户端的Socket

必须指定要连接的服务器端地址和端口

通过创建一个Socket对象来初始化一个到服务器端的TCP连接

Socket方法:
 I    PAdress类:包含一个IP地址

   IPEndPoint:包含一对IP地址和端口号

   Socket():创建一个Socket

   Bind():绑定一个本地的IP和端口号(IPEndpoint

   Listen():让Socket监听传入的连接方式,并指定监听队列容量

   Accept():接受连接到的Socket

  Send():输出数据到Socket

  Receive():从Socket中读取数据

  Close():关闭Socket(销毁连接)

---------------------- Windows Phone 7手机开发.Net培训、期待与您交流! ---------------------- 详细请查看: http://edu.csdn.net/heima/
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
黑马程序员是一家IT培训机构,提供各种技术培训课程,包括网络通信相关的课程。在网络通信中,socket是一种编程接口,用于实现不同主机之间的通信。通过socket函数创建一个套接字,指定域名、类型和协议。域名可以是AF_INET、AF_INET6或AF_UNIX,类型可以是SOCK_STREAM(用于TCP通信)或SOCK_DGRAM(用于UDP通信),协议可以是0表示自动选择适合的协议。创建成功后,套接字会返回一个文件描述符,用于在后续的通信中进行读写操作。 在TCP通信中,服务器和客户端的流程大致相同。服务器首先使用socket函数创建套接字,然后使用bind函数绑定服务器地址结构,接着使用listen函数设置监听上限。服务器通过accept函数阻塞监听客户端连接,并使用read函数读取客户端传来的数据,进行相应的处理后,使用write函数将处理后的数据写回给客户端,最后使用close函数关闭套接字。客户端也是先使用socket函数创建套接字,然后使用connect函数与服务器建立连接,之后使用write函数将数据写入套接字,再使用read函数读取服务器返回的数据,最后使用close函数关闭套接字。 在UDP通信中,服务器和客户端的流程也有所不同。服务器使用socket函数创建套接字,指定类型为SOCK_DGRAM,然后使用bind函数绑定服务器地址结构。服务器通过recvfrom函数接收客户端传来的数据,并进行相应的处理,最后使用sendto函数将处理后的数据发送回给客户端。客户端同样使用socket函数创建套接字,然后通过sendto函数将数据发送给服务器,再使用recvfrom函数接收服务器返回的数据。 总之,socket网络通信是通过创建套接字实现不同主机之间的通信。根据使用的协议不同,可以选择TCP或UDP通信方式。服务器和客户端根据流程进行相应的操作,实现数据的传输和交互。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值