黑马程序员_Java_网络编程(一)
来源:互联网 发布:mac卸载safefinder 编辑:程序博客网 时间:2024/05/29 17:07
——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-
一.网络编程概念
1.IP地址
每一台机器都有一个唯一的IP地址, 通过IP地址可以找到这台机器.
IPv4 由4组0~255组成. 42亿个. 3/4在北美. 亚洲4亿. 中国2.5亿. 2011年3月分配完毕.
IPv6 由8组每组4个16进制组成.
ipconfig可以查询自己的IP.
ping 尝试连接某ip地址
127.0.0.1 本地回路地址, ping这个地址可以测试网卡是否可用
255.255.255.255 广播地址
2.端口号
计算机上的每一个程序都会对应一个端口号 0~65536
尽量使用1024以上的, 1024以下基本都被系统程序占用了
3.UDP
面向无连接, 不保证数据安全, 速度快.
4.TCP
面向连接, 数据安全, 速度稍慢. 三次握手. 发起请求, 接受请求, 发送数据.
二.API
1.UDP发送:
需要创建Socket, 发送端不需要指定ip地址和端口, 使用本机地址发送, 会自动找到未使用的端口. DatagramSocket socket = new DatagramSocket(); 发送时需要创建数据包, 包含字节数组, 长度, ip地址, 端口号 DatagramPacket packet = new DatagramPacket(str.getBytes(), str.getBytes().length,
InetAddress.getByName(“127.0.0.1”), 8888);
发送 socket.send(packet); 释放资源 socket.close();
2.UDP接收
需要创建Socket, 接收时必须指定端口号. DatagramSocket socket = new DatagramSocket(8888); 接收时也需要创建数据包, 用来存储数据. 需要一个字节数组. DatagramPacket packet = new DatagramPacket(new byte[1024], 1024); 接收数据 socket.receive(packet); 从数据包中获取数据 byte[] data = packet.getData(); 获取数据长度 int len = packet.getLength(); 获取ip地址 packet.getInetAddress().getHostAddress(); 获取端口号 packet.getPort();
三.GUI聊天室(老师所讲案例总结)
1.界面所需组件
TextArea 接收
TextArea 发送
TextField 填写IP
Button 发送
Button 清屏
Button 聊天记录
2.界面布局
Frame是边界布局
其中包含两个Panel, 一个是Center用来放文本域, 一个是South用来放文本框及按钮
上面的Panel是边界布局BorderLayout, 其中有两个TextArea, 一个接收一个发送, 接收的在Center, 发
送的在South
下面的Panel是流式布局FlowLayout, 其中包含文本框和3个按钮
3.发送
给发送按钮添加ActionListener, 当点击按钮时发送
获取文本框中的内容, ip地址
获取发送文本域中的内容, 消息内容
将消息内容发送到指定的ip地址, 端口号统一8888, 需要判断ip地址, 如果没填就像广播地址
255.255.255.255发送
然后将发送出去的内容显示在接收文本域中
在发送文本域中添加KeyListener, 当按下CTRL+ENTER时发送
4.接收
开启一条线程用来接收数据
接收到数据之后显示在接收文本域中
5.清屏
给清屏按钮添加ActionListener, 当点击按钮时清除接收文本域中所有内容
——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-
- 黑马程序员_Java_网络编程(一)
- 黑马程序员_Java_网络编程(一)
- 黑马程序员_JAVA_网络编程
- 黑马程序员_JAVA_网络编程
- 黑马程序员_JAVA_网络编程
- 黑马程序员_JAVA_网络编程
- 黑马程序员_java_网络编程
- 黑马程序员_Java_网络编程
- 黑马程序员_Java_网络编程
- 黑马程序员_Java_网络编程(二)
- 黑马程序员_Java_网络编程(二)
- 黑马程序员:网络编程<一>
- 黑马程序员--网络编程(一)
- 黑马程序员----网络编程一
- 黑马程序员--网络编程(一)
- 黑马程序员_JAVA_面向对象(一)
- 黑马程序员_JAVA_面向对象(一)
- 黑马程序员_JAVA_集合框架(一)
- WeX5界面模块化的使用—如何显示声明依赖
- 自定义dialog
- Android 如何在自定义界面上启用输入法 (How to enable inputmethod for the custom UI)
- VS2010程序打包操作(超详细的)
- 解决favicon.ico无法显示的问题
- 黑马程序员_Java_网络编程(一)
- 黑马程序员_Java_网络编程(二)
- 手机电池保护教程
- SSH全局异常抛出并输出页面
- Android的搜索框SearchView的用法-android学习之旅(三十九)
- 动态规划:从新手到专家
- 黑马程序员_正则表达式
- Tomcat SSL配置 Connector attribute SSLCertificateFile must be defined when using SSL with APR解决
- 黑马程序员_Java基础泛型