JAVA初学者。勿喷。

eclipse稍微有点难用,关程序是在Console里面,要是没开出来并且死循环的话电脑cpu直接拉满了。

而且进程的关闭是输入指定的”再见“才关闭多线程,直接关的话线程其实还在跑。得自己去找该线程的Console来关。

最近被多线程,网络编程,数据库,可视化这些点的作业搞得有点无语..做题时间都没了。

接收端线程

package chat;
import java.io.*;
import java.net.*;///接收端
public class Updchat1 implements Runnable {private DatagramSocket socket=null;private int port;private String msgFrom;public Updchat1(int port,String msgFrom) {this.port=port;this.msgFrom=msgFrom;try {socket=new DatagramSocket(port);///从哪个端口接收}catch(SocketException e) {e.printStackTrace();}}public void run() {while(true) {byte[] container=new byte[1024];DatagramPacket packet=new DatagramPacket(container,0,container.length);try {socket.receive(packet);///阻塞式接受包裹} catch (IOException e) {e.printStackTrace();}///用“再见”断开连接byte[] data=packet.getData();String receiverData=new String(data,0,data.length);System.out.println(msgFrom+":"+receiverData);if(receiverData=="再见") {break;///断开连接}}socket.close();///关闭管道}
}

发送端线程

package chat;import java.io.*;
import java.net.*;///发送端
public class Updchat2 implements Runnable {DatagramSocket socket=null;BufferedReader reader=null;private int fromPort;// 来自哪里的端口号private String toIP;// 发送到哪个IPprivate int toPort;// 发送到哪里的端口号。public Updchat2(int fromPort,String toIP,int toPort) {this.fromPort=fromPort;this.toIP=toIP;this.toPort=toPort;try {socket=new DatagramSocket(fromPort);reader=new BufferedReader(new InputStreamReader(System.in));}catch(Exception e) {e.printStackTrace();}}@Overridepublic void run() {// TODO Auto-generated method stubwhile(true) {try {String data=reader.readLine();byte[] datas=data.getBytes();DatagramPacket packet=new DatagramPacket(datas,0,datas.length,new InetSocketAddress(this.toIP,this.toPort));socket.send(packet);System.out.println();if(datas.toString()=="再见") {break;}}catch(Exception e) {e.printStackTrace();}}socket.close();}}

启动线程

package chat;public class Talkstudent {public static void main(String[] arges) {///开启两个线程new Thread(new Updchat2(7777,"localhost",9999)).start();;学生从7777端口发到老师9999端口new Thread(new Updchat1(8888,"老师")).start();///学生从8888端口接收老师消息}
}
package chat;public class TalkTeacher {public static void main(String[] arges) {new Thread(new Updchat2(5555,"localhost",8888)).start();;///老师从5555端口发送到学生的8888端口new Thread(new Updchat1(9999,"学生")).start();///老师从9999接收学生的消息}
}

java使用socket网络编程实现qq互聊(UPD简单版本)相关推荐

  1. Java之socket网络编程

    socket网络编程 文章目录 socket网络编程 一.网络编程概述 二.网络通信要素概述 三.IP和端口号 四.网络协议 五.TCP网络编程 六.UDP网络编程 一.网络编程概述 网络编程的目的 ...

  2. JAVA.SE Socket网络编程

    文章目录 1.网络编程入门 1.1软件架构介绍 1.2互联网通信协议 1.3网络编程的三要素 2.TCP通信 2.1通信分为客户端与服务器 2.2 socket的介绍与使用 2.3servletSoc ...

  3. 【Java】Socket网络编程解读与实战

    Socket原理 Socket原理 <Socket 到底是什么> Socket--套接字 是网络应用程序编程的接口和一种机制 用套接字中的相关函数来建立连接和完成通信 Socket可以看成 ...

  4. (Java)socket网络编程及处理socket粘包拆包问题

    目录 1.socket简介 2.TCP/IP协议 3.tcp三次握手 4.socket的一些接口函数原理 5.java socket 长连接粘包拆包问题 6.socket模拟服务端客户端发消息 7.U ...

  5. 【Java】Socket网络编程实现内网穿透、端口映射转发、内网穿透上网工具的编写,设置IP白名单防火墙

    这里写目录标题 简介 更新 一.背景 1.1 情景假设 1.2 想要达到的目的 1.3 局限 1.3 解决方案一(路由器NAT) 1.4 解决方案二(云服务器转发) 二.方案介绍 2.1 方案简介 2 ...

  6. Java的Socket网络编程

    1.Socket是什么? socket是进程之间通信的一种方式,调用这个网络库中的一些API实现分布在不同主机之间的相关进程的一些数据交换. 服务器端需要做的事情 打开一个通信通道并告诉本机,它愿意在 ...

  7. Java 之 socket 网络编程

    客户端 import java.io.*; import java.net.Inet4Address; import java.net.InetSocketAddress; import java.n ...

  8. Socket网络编程(代码实现)

    Socket网络编程主要分为UDP协议编程和TCP协议编程,下面将会从网络编程概述.UDP编程代码实现和TCP编程代码实现三个方面来全面介绍Socket网络编程. 1.网络编程概述 (1)软件编程2种 ...

  9. Linux C++/Java/Web/OC Socket网络编程

    一,Linux C++ Socket网络编程 1.什么是TCP/IP.UDP? TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制 ...

最新文章

  1. 2021年开源SLAM算法集锦
  2. VTK:几何对象之Plane
  3. c++ 不能分配给为0的数组_【嵌入式C】你有想过quot;数组下标quot;为何从0开始吗?...
  4. springboot获取当前服务ip_springboot(6)——整合日志
  5. 大数据之-入门_大数据发展前景---大数据之hadoop工作笔记0005
  6. Codeforces 1041C(贪心+set)
  7. 斐讯e1刷集客_斐讯无线AP2543CD 1750M AP 无拆刷Breed集客AP固件
  8. 打造网站克隆、仿站工具、含源码(.NET CORE + selenium + chromedriver)
  9. 第一届腾讯社招广告大赛总结
  10. 计算机机器语言教程,机器语言.ppt
  11. 蒲丰投针结果_Scratch3.0模拟布丰投针,求π的近似值#寻找真知派#
  12. 差点被一个截图忽悠了,分析一个QQ空间钓鱼网站
  13. android11安装第三方,Android Apk安装(兼容Android11 Api30)
  14. 如何使用Excel管理项目?
  15. Mock 模拟测试简介及 Mockito 使用入门
  16. 如何快速定位 elastic search 运行出现的 bug HTTP/1.1 400 Bad Request type is missing VALUE_NUMBER_INT
  17. MUI移动端开发,嵌入ifream,页面返回问题解决
  18. baocms伪静态_最新BAOCMS 6.2本地O2O生活门户系统多城市完整版源码下载 贴吧圈子+缴费服务+政务活动+微信等...
  19. 如何知道特征的重要性
  20. 2022年《深圳市新引进博士人才生活补贴工作实施办法》最新政策

热门文章

  1. 开票系统 文化服务器,开票服务器系统
  2. 物联网传感器_基于传感器的物联网预测性维护,为什么必须对机器进行数字信号处理...
  3. MySQL开发技巧 第二禅(子查询中匹配两个值、解决同属性多值过滤的问题、计算累进税的问题)
  4. 用C#开发的双色球走势图(一)
  5. WORD转换成PDF转换器2015官方版?
  6. RTMP协议深度解析:从原理到实践,掌握实时流媒体传输技术
  7. 为什么服饰板块港股强于A股?看看这背后的逻辑吧
  8. centos 安装openvpn
  9. ESP8266--esp8266-alink-v1.0学习笔记(一)
  10. html块级元素和行内元素吗,块级元素和行内元素有什么区别