网络编程

网络编程

INetAddress
Socket
ServerSocket

1.INetAddress类
封装一个IP地址,可以封装本机地址,也可以封装远程主句地址
创建对象:
静态方法:
getByName(String host)
指定远程主机名,或IP,封装远程主机的地址
getLocalhost()
本机地址
方法:
getHostAddress()
得到主机IP
getHostName()
得到主机名

2.Socket通信
Socket是两台主机之间,用IP地址+端口号,进行通信
端口:0~65535,虚拟端口,
0到1024,是一些常见网络服务端口
5万以上,系统动态端口
Socket,网络套接字
插头

3.Socket服务器端
服务器端启动后,在一个固定端口上等待,等待客户端来
主动发起连接,服务器端会与客户端建立连接建立的连接就是
一个Socket连接通道,Socket连接通道分两头,一头插在服务器,另一头
插在客户端
ServerSocket
创建对象
ss = new ServerSocket(端口);
在指定端口上,等待客户端来连接,端口是独占的,如果
已被占用会出现Address Alrady In Use 异常
方法:
accept()
暂停等待客户端的连接请求
close()
停止服务,释放端口
4.Socket客户端
在客户端主动发起的连接:
创建Socket对象(直接建立连接)
s = new Socket(ip,端口);
主动向服务器发起连接请求,并建立连接通道
创建连接对象之后,再发起连接请求
s = new Socket();
s.connect(SocketAddress)
SocketAddress,使用它的子类型InetSocketAddress,
创建它的对象时,指定IP和端口号
s.connect(SocketAddress,int timeout)
timeout 建立连接超时时间,单位是秒

方法
getInputStream()
得到另一端传来的数据输入流
getOutputStream()
得到发送数据的输出流
5.网络通信阻塞操作
ss.accept()
阻塞操作,程序暂定,后面的代码不能执行
in.read()
接收数据,对方不发送,暂停等待,后面的代码不能执行

阻塞操作,应该放在线程中,与其他代码并行

6.服务器端线程模型
1.服务线程
循环等待下一个客户端,与下一个客户端建立连接
2.通信线程
等待客户端发送数据
对每个客户端,都要建立一个个通信线程
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值