Socket实现局域网通讯

//服务器
package serverSocketandClient;

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;


public class ServletSocketDemo {
public static void main(String[] args) {

try {
ServerSocket ss=new ServerSocket(3366);
Socket socket=ss.accept();
ServerInput si=new ServerInput(socket.getInputStream());
si.start();
ServerOutput so=new ServerOutput(socket.getOutputStream());
so.start();
} catch (IOException e) {
e.printStackTrace();
}
}

}

//实现服务器端的读取数据流功能类

package serverSocketandClient;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;

public class ServerInput extends Thread {
InputStream is;
public ServerInput(InputStream is){
this.is=is;
}
public void run(){
try{
InputStreamReader isr=new InputStreamReader(is);
BufferedReader br=new BufferedReader(isr);
String str;
while(true){
str=br.readLine();
System.out.println("客户端说:"+str);
}
}catch(Exception e){
e.printStackTrace();
}
}

}
//实现服务器端输出数据流功能的类
package serverSocketandClient;

import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.util.Scanner;

public class ServerOutput extends Thread {
OutputStream os;
public ServerOutput(OutputStream os){
this.os=os;
}
public void run(){
OutputStreamWriter osw=new OutputStreamWriter(os);
PrintWriter pw=new PrintWriter(osw);
Scanner in=new Scanner(System.in);
String str=null;
while(true){
str=in.nextLine();
pw.println(str);
pw.flush();
}
}

}
//客户端
package serverSocketandClient;

import java.net.Socket;
import java.util.Scanner;

public class ClientDemo {

/**
* 客户端
*/
public static void main(String[] args) {
try{
System.out.println("请输入服务器的Ip地址");
Scanner ip=new Scanner(System.in);
String ipstr=ip.nextLine();
Socket socket=new Socket(ipstr,3366);
ClientInput ci=new ClientInput(socket.getInputStream());
ci.start();
ClientOutput co=new ClientOutput(socket.getOutputStream());
co.start();


}catch(Exception e){
e.printStackTrace();
}

}

}
//客户端读取数据流的类
package serverSocketandClient;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;

public class ClientInput extends Thread {
InputStream is;
public ClientInput(InputStream is){
this.is=is;
}
public void run(){
try{
InputStreamReader isr=new InputStreamReader(is);
BufferedReader br=new BufferedReader(isr);
String str;
while(true){
str=br.readLine();
System.out.println("服务器说:"+str);
}
}catch(Exception e){
e.printStackTrace();
}
}
}
//客户端将数据流输出的类
package serverSocketandClient;

import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.util.Scanner;

public class ClientOutput extends Thread {
OutputStream os;
public ClientOutput(OutputStream os){
this.os=os;
}
public void run(){
OutputStreamWriter osw=new OutputStreamWriter(os);
PrintWriter pw=new PrintWriter(osw);
Scanner in=new Scanner(System.in);
String str=null;
while(true){
str=in.nextLine();
pw.println(str);
pw.flush();
}
}

}

猜你喜欢

转载自hello-jesson.iteye.com/blog/1611202