java se 局域网小聊天室
来源:互联网 发布:淘宝怎样退货 编辑:程序博客网 时间:2024/05/24 06:57
//主进程
package com.study.chat;
import java.net.DatagramSocket;import java.net.SocketException;
public class start {
public static void main(String[] args) throws SocketException {
// TODO Auto-generated method stub
DatagramSocket sendds=new DatagramSocket();
DatagramSocket receds=new DatagramSocket(13000);
Rece rece=new Rece(receds);
Send send=new Send(sendds);
new Thread(rece).start(); //多线程
new Thread(send).start();
}
}
//聊天室
package com.study.chat;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;
public class Rece implements Runnable {
private DatagramSocket ds;
public Rece(DatagramSocket ds) {
this.ds=ds;
}
@Override
public void run() {
// TODO Auto-generated method stub
try {
byte[] buf=new byte[1024];
DatagramPacket dp=new DatagramPacket(buf, 0, buf.length);
ds.receive(dp);
String ip=dp.getAddress().getHostAddress();
String content=new String(dp.getData(),0,dp.getLength());
System.out.println(ip+":"+content);
if(content.equals("886")) {
System.out.println("提示"+ip+"已经退出聊天室");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
//发送信息
package com.study.chat;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
public class Send implements Runnable {
private DatagramSocket ds;
private DatagramPacket dp;
public Send(DatagramSocket ds) {
this.ds=ds;
}
@Override
public void run() {
// TODO Auto-generated method stub
try {
// 键盘输入
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = null;
while ((line = br.readLine()) != null) {
byte[] buf = new byte[1024];
buf = line.getBytes();
// 192.168.1.255 为此网段广播,这样所有在该网段的电脑都能收到
dp = new DatagramPacket(buf, buf.length, InetAddress.getByName("192.168.1.255"), 13000);
ds.send(dp);
if("886".equals(line))
break;
}
ds.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
- java se 局域网小聊天室
- 【我的代码】java初级练手小项目--局域网聊天室
- 局域网聊天室
- 局域网聊天室
- 局域网聊天室
- 局域网聊天室
- 局域网聊天室
- Java实战_局域网多人聊天室
- java菜鸟 socket简易局域网聊天室
- Linux 小实验之我的局域网聊天室
- java se面试小考题
- JAVA tcp聊天室小实验
- Java—网络编程实现UDP聊天室(局域网)
- 简易局域网聊天室程序
- C# 局域网聊天室
- 局域网聊天室源代码
- 局域网qq聊天室
- 练手小项目一:JAVA聊天室系統說明书
- vs 无法断点调试的解决办法
- [译]Android架构组件
- 设置IP地址,主机映射,主机名
- 关于 Mac OS系统中编程时出现的segment error 和bus error原因描述
- 向GitHub上传代码(学习记录)
- java se 局域网小聊天室
- 十进制转化为十六进制
- 数据库查询返回类型
- spring cloud config实现datasource的热部署
- This is very likely to create a memory leak. Stack trace of thread
- 实现一个栈Stack,要求实现Push(出栈)、Pop(入栈)、Min(返回最小值的操作)的时间复杂度为O(1) /查找一个字符串中第一个只出现两次的字符
- C#web知识
- linux chmod 755的含义
- java(== and equals)