目标:java Web开发
智商欠费了,脑子已经燃起来了对同一个问题,看别人写代码:这不是有手就行?再看自己写的代码:卧槽,什么垃圾...
创建多人聊天室。可以打开一个接收端投影到大屏幕上,创建多个输入端,在一起聊天。
“UDP通信程序”:
先写接收端,准备接受数据
package demo.temp;
import java.io.*;
import java.net.*;
public class ReceiveUDP {
public static void main(String[] args) throws IOException {
DatagramSocket ds=new DatagramSocket(10000);
byte[] bys=new byte[1024];
DatagramPacket dp=new DatagramPacket(bys,bys.length);
while(true) {
ds.receive(dp);
System.out.println(new String(dp.getData(),0,dp.getLength()));
}
}
}
再写发送端,发送键盘输入的数据
package demo.temp;
import java.io.*;
import java.net.*;
public class SendUDP {
public static void main(String[] args) throws IOException{
DatagramSocket ds=new DatagramSocket();
BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));
String line;
while((line=bf.readLine())!=null) {
if("886".equals(line)) break;
byte[] bys=line.getBytes();
DatagramPacket dp=new DatagramPacket(bys,bys.length,InetAddress.getByName("192.168.10.32"),10000);
ds.send(dp);
}
bf.close();
ds.close();
}
}
“TCP通信程序”:
先写服务端
package demo.temp;
import java.net.*;
import java.io.*;
public class ServerTCP {
public static void main(String[] args) throws IOException{
ServerSocket ss=new ServerSocket(10000);
Socket s=ss.accept();
BufferedReader bf=new BufferedReader(new InputStreamReader(s.getInputStream()));
BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(System.out));
String line;
while((line=bf.readLine())!=null) {
bw.write(line);
bw.newLine();
bw.flush();
}
//bw.write("谢谢使用");
//bw.newLine();
//bw.flush();
//bw.close();
//ss.close();
}
}
再写客户端
package demo.temp;
import java.net.*;
import java.io.*;
public class ClientTCP {
public static void main(String[] args) throws IOException {
Socket s=new Socket("192.168.10.32",10000);
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
String line;
while((line=br.readLine())!=null) {
bw.write(line);
bw.newLine();
bw.flush();
}
//s.shutdownOutput();
br.close();
s.close();
}
}