JavaSE_24_网络编程TCP(一)精要.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
TCP/IP 4层/5层/7层模型 .InetAddress 此类表示互联网协议 (IP) 地址。 static InetAddress getLocalHost()返回本地主机 static InetAddress getByName(String host) 在给定主机名的情况下确定主机(可以用ip地址或主机名表示)的 IP 地址 String getHostAddress() 返回 IP 地址字符串(以文本表现形式)是一个对象方法. InetAddress import .InetAddress; import .UnknownHostException; public class DemoInerAddress { public static void main(String[] args) { try { InetAddress ia1 = InetAddress.getLocalHost(); System.out.println(本地地址: + ia1.getHostAddress()); InetAddress ia2 = InetAddress.getByName (); System.out.println(-- + ia2.getHostAddress()); } catch (UnknownHostException e) { e.printStackTrace(); } } } Socket InetAddress getInetAddress() 返回此套接字连接到的远程 IP 地址; InetAddress getLocalAddress() 获取套接字绑定的本地地址。 ?int getPort() ??????????返回此套接字连接到的远程端口。 ?int getLocalPort() ??????????返回此套接字绑定到的本地端口。 InputStream getInputStream() ??????????返回此套接字的输入流。 OutputStream getOutputStream() ??????????返回此套接字的输出流。 boolean isClosed() 返回此套接字是否已经关闭 Socket编程常见问题 多个控制台如何切换? .BindException: Address already in use: JVM_Bind 原因:服务器启动多个在绑定同一个端口 客户端和服务器不在同一个电脑上时,如何连接? 客户端需要指定要连接的服务器的ip和端口号 Socket编程常见问题 .SocketException: Socket closed 原因:关闭了某个基于Socket的流导致Socket被自动关闭,其他关联在Socket上的流也会被自动关闭掉. .ConnectException: Connection refused: connect 原因:无法连接到服务器,有可能服务器未开启或者端口号不对 C/S结构中 流的搭建顺序原则 交替搭建 服务器先建输入流,后建输出流, 客户端就先建输出流,再建输入流; 服务器先建输出流,后建输入流, 客户端就先建输入流,再建输出流; Socket通信 实现方式一: OutputStream:write() InputStream:read() 实现方式二: BufferedWriter:write(),注意newLine(),flush() PrintWriter:println() BufferedReader:readLine() 实现方式三: ObjectInputStream:readObject() ObjectOutputStream:writeObject() 练习:C-S交替聊天程序 注意: 1Server:1Client聊天,不用循环accept()接收新的客户端进来. 流不用循环搭建. 流也不要循环关闭. 该flush()的时候别忘记. Server执行顺序: 1.从客户端读 2.读键盘输入,如果输入exit,退出程序,退出之前,先向对方写出exit 3.向客户端写 Client执行顺序: 1.读键盘输入,如果输入exit,退出程序,退出之前,先向对方写出exit 2.向服务器写 3.从服务器读 练习: 1.实现服务器与客户端1对1的随意顺序的聊天 发送线程ServerSend 接收线程ServerReceive 场景类Server 发送线程ClientSend 接收线程ClientReceive 场景类Client 提示:可通过线程类的构造方法传

文档评论(0)

基本资料 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档