赞
踩
视频教程原地址:
https://www.bilibili.com/video/BV1LJ411z7vY?p=11
新建一个类TalkSend
实现Runnable
的接口。重写run()
方法定义三个变量(属性),分别是来自哪里的端口号,发送到那个IP,发送到那个IP的端口号。
private int fromPort; // 来自哪里的端口号。
private String toIP;// 发送到那个IP。
private int toPort; // 发送到哪里的端口号。
接着实现构造方法,把三个参数传进来,写成完整的构造器。
public TalkSend(int fromPort, String toIP, int toPort) {
this.fromPort = fromPort;
this.toIP = toIP;
this.toPort = toPort;
}
然后想一想需要输入句子,传递字符串过去那么必定涉及到流的知识,在run()
方法中 创建BufferedReader
对象,并调用它的readLine()
方法。紧接着获取输入字符串的字节并返回给datas,把他打包起来发出去即可。
代码如下:
while (true) {
try {
String data = reader.readLine();// 读这一行的结果返回给data.
byte[] datas = data.getBytes(); // 获取的输入的字符的字节。
DatagramPacket packet = new DatagramPacket(datas, 0, datas.length, new InetSocketAddress(this.toIP, this.toPort));
// 把datas通过DatagramPacket对象包裹起来送出去,填写对应的要送到的地方也就是IP和端口号。
socket.send(packet); // 调用socket对象的send方法,把“包裹”发送出去。
if (data.equals("bye")) {
// 如果输入到字符bye,则结束聊天。
break;
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。