//服务端代码
package service;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import util.ReadThread;
import util.WriteThread;
public class ServerSocketDemo1 {
public static void main(String[] args) {
ServerSocket server=null;
Socket socket=null;
try {
server=new ServerSocket(9999);
System.out.println("服务器已启动......");
while(true){
socket=server.accept();
System.out.println(socket+"已经建立连接!");
//读写线程
new ReadThread(socket).start();
new WriteThread(socket).start();
}
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
}
//客户端
package service;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
import util.ReadThread;
import util.WriteThread;
public class SocketDemo1 {
public static void main(String[] args) {
Socket socket=null;
try {
socket=new Socket("192.168.1.104", 9999);
new ReadThread(socket).start();
new WriteThread(socket).start();
} catch (Exception e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
}
//读线程
package util;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.Scanner;
public class ReadThread extends Thread {
private Socket socket;
public ReadThread(Socket socket){
this.socket=socket;
}
@Override
public void run() {
BufferedReader in=null;
try {
in=new BufferedReader(new InputStreamReader(socket.getInputStream()));
while(true){
String ctn = in.readLine();
System.out.println(ctn);
}
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}finally{
if(in != null)
try {
in.close();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
}
}
//写线程
package util;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.Scanner;
public class WriteThread extends Thread{
private Socket socket;
public WriteThread(Socket socket){
this.socket=socket;
}
@Override
public void run() {
PrintWriter out=null;
Scanner scanner=null;
try {
out=new PrintWriter(socket.getOutputStream());
scanner=new Scanner(System.in);
while(true){
out.println(scanner.nextLine());
out.flush();
}
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}finally{
if(out != null) out.close();
}
}
}