A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© sss18310878521 中级黑马   /  2015-5-28 22:44  /  532 人查看  /  1 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

网络编程:Socket编程: 套接字编程

        网络编程三要素:
                IP地址:
                        32位或者128位表示一个IP地址, 转换成32位十进制显示, 128位 16进制显示
                端口号:
                        每个与网络相关的程序,都是数据的入口与出口,就是端口号
                协议:
                        UDP:
                                速度快
                                不安全,会丢数据
                                面向无连接
                                数据报包形式传输,大小64KB限制
                        TCP:
                                速度稍慢
                                安全, 不会丢数据、
                                三次握手协议
                                可以传输大数据量的文件数据


                使用UDP协议完成数据的传输
                        发送端:
                                1:创建发送端DatagramSocket对象
                                2: 创建数据报包 DatagramPacket对象
                                3: 发送数据报包  send(dp)
                                4: 释放资源
                        接收端:
                                1: 创建接收端DatagramSocket对象
                                2:创建空的数据报包 DatagramPacket对象
                                3: 接收数据报包, 把数据存储到空的数据报包
                                4:解析数据报包的数据
                                         获取IP地址  dp.getAddress(). getHostAddress()
                                         获取数据:  dp.getData()
                                         数据数据的长度: dp.getLength()
                                5: 释放资源
               
                (重点)使用TCP协议完成数据的传输
                        客户端:
                                1:创建客户端的Socket对象
                                2: 获取输出流, 写数据
                                3: 释放资源
                               
                        服务器端:
                                1: 创建服务器端ServerSocket对象
                                2:  等待客户端的连接
                                3:  获取客户端的输入流对象, 获取数据:
                                4:  显示数据(其他操作【把数据写到文件中】)
                                5:  释放资源
                               
                               
                               
                        注意事项:
                                1:在使用read()或者readLine()方法的时候,这两个方法为阻塞方法,可能会导致程序无限等待
                              我们可以通过 shutDownOutput() 或者 shutDownInput() 来告知对方数据已完毕
                               
                                2: 在操作文件相关的流时, 必须关闭流               
                       



1 个回复

倒序浏览
不错,学习一下
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马