package com.wet.TCP_UDP_thread;
import java.io.*;
import java.net.*;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* TCP多线程应用
*
* @author Administrator
*
*/
public class TCPThreadServer extends Thread {
private Socket s;
public TCPThreadServer() {
}
/**
* 将通信流的信息(输入输出)放到run方法中
*/
@Override
public void run() {
}
public TCPThreadServer(Socket s) {
this.s = s;
}
public void openServer() {
try {
ServerSocket ss = new ServerSocket(8080);
//将每个客户端的传输方法放到线程方法中
while(true) {
new TCPThreadServer(ss.accept()).start();
}
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
new TCPThreadServer().openServer();
}
}
package com.wet.TCP_UDP_thread;
import java.io.IOException;
import java.net.*;
/**
* UDP服务器之多线程应用
*
* @author Administrator
*
*/
public class UDPThreadServer extends Thread {
private DatagramPacket dp;
public UDPThreadServer() {
}
public UDPThreadServer(DatagramPacket dp) {
this.dp = dp;
}
/**
* 将数据包中的结果放到run方法中
*/
@Override
public void run() {
System.out.println(new String(dp.getData()).trim());
}
public void openServer() {
try {
DatagramSocket ds = new DatagramSocket(8080);
byte[] buf = new byte[1024];
DatagramPacket p = new DatagramPacket(buf, buf.length);
ds.receive(p);
new UDPThreadServer(p).start();
} catch (SocketException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
new UDPThreadServer().openServer();
}
}