黑马程序员—多线程聊天室(Socket介绍+源码)

本文介绍了Socket的概念,包括流式和数据报式Socket的区别,以及Socket在服务器端和客户端的应用模式。重点讲解了Socket通信过程,并以多线程聊天室为例,阐述了Socket在实际项目中的应用,适合初学者了解Socket通信的基本流程。
摘要由CSDN通过智能技术生成
---------------------- ASP.Net+Android+IO开发S.Net培训、期待与您交流! ----------------------

1.Socket概念

Internet上有很多这样的主机,这些主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务。
例如:http 使用80端口  ftp使用21端口 smtp 23端口


两种类型
流式SocketSTREAM):是一种面向连接的Socket,针对于面向连接的TCP服务应用,安全,但是效率低;
数据报式SocketDATAGRAM):是一种无连接的Socket,对应于无连接的UDP服务应用.不安全(丢失,顺序混乱,在接收端要分析重排及要求重发),但效率高.


Socket一般应用模式(服务器端和客户端)


1.服务端welcoming socket 开始监听端口(负责监听客户端连接信息)

2.客户端client socket连接服务端指定端口(负责接收和发送服务端消息)

3.服务端welcoming socket 监听到客户端连接,创建connection socket(负责和客户端通信)


服务器端的Socket(至少需要两个)
一个负责接收客户端连接
每成功接收到一个客户端的连接便在服务端产生一个对应的Socket
在接收到客户端连接时创建.
为每个连接成功的客户端创建一个对应的Socket.

客户端的Socket
必须指定要连接的服务端地址和端口。
通过创建一个Socket对象来初始化一个到服务器端的TCP连接。 


Socket的通讯过程

服务器端:
申请一个socket
绑定到一个IP地址和一个端口上
开启侦听,等待接授连接
客户端:
申请一个socket
连接服务器(指明IP地址和端口号)
服务器端接到连接请求后,产生一个新的socket(端口大于1024)与客户端建立连接并进行通讯,原侦听socket继续侦听


注:127.0.0.1 就代表本机


注意

至少要定义一个要连接的远程主机的IP和端口号。
端口号必须在 和 65535之间,最好在

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值