*************************************************************
MultiTalkServer.java是服务器程序
import java.io.*;
import java.net.*;
public class MultiTalkServer {
static int clientnum=0;
public static void main(String args[])throws IOException{
ServerSocket serverSocket = null;
boolean listening = true;
try{
//创建一个ServerSocket在端口4800监听客户请求
serverSocket = new ServerSocket(4800);
}catch(IOException e){
System.out.print(e);
System.exit(-1);
}
while(listening){
new ServerThread(serverSocket.accept(),clientnum).start();
clientnum++;
}
serverSocket.close();
}
}
*************************************************************
ServerThread.java是服务器程序
import java.io.*;
import java.net.*;
public class ServerThread extends Thread{
Socket socket = null; // 保存于本线程相关的Socket对象
int clientnum; //保存本线程的客户计数
public ServerThread(Socket socket,int num){
this.socket=socket; // 初始化Socket对象
clientnum=num+1; // 初始化 clientnum变量
}
public void run(){ //线程主体
try{
String line;
//由Socket对象得到输入流,并构造相应的BufferedReader对象
BufferedReader is=new BufferedReader(new
InputStreamReader(socket.getInputStream()));
//由Socket对象得到输出流,并构造PrintWriter对象
PrintWriter os=new PrintWriter(socket.getOutputStream());
//由系统标准输入设备构造BufferefReader对象
BufferedReader sin=new BufferedReader(new InputStreamReader(System.in));
//在显示屏上输出从客户端读入的字符串
System.out.println("Client:"+clientnum+is.readLine());
//从标准输入读入一字符串
line=sin.readLine();
while(!line.equals("bye")){
os.println(line);
os.flush();
System.out.println("Server:"+line);
System.out.println("Client:"+is.readLine());
line=sin.readLine();
}
os.close();
is.close();
socket.close();
}catch(Exception e){
System.out.println("Error:"+e); //在屏幕上显示错误信息
}
}
}
*************************************************************
TalkClient.java是客户端程序
import java.io.*;
import java.net.*;
public class TalkClient {
public static void main(String args[]){
try{
//向本机的4800端口发送客户请求
Socket socket=new Socket("192.168.1.101",4800);
//由系统标准输入设备构造BufferReader对象
BufferedReader sin=new BufferedReader(
new InputStreamReader(System.in)
);
//由Socket对象得到输出流,并构造PrintWriter对象
PrintWriter os=new PrintWriter(socket.getOutputStream());
//由Socket对象得到输入流,并构造相应的BufferedReader对象
BufferedReader is=new BufferedReader(
new InputStreamReader(socket.getInputStream())
);
String readline;
readline=sin.readLine(); //从系统标准输入上读入一串字符串
//若读入字符串为bye则停止循环
while(!readline.equals("bye")){
//将输入的字符串输出到Server
os.println(readline);
os.flush();
//在显示屏上输出读入字符串
System.out.println("Client:"+readline);
System.out.println("Server:"+is.readLine());
readline=sin.readLine();
}
os.close();
is.close();
socket.close();
}catch(Exception e){
System.out.println("Error"+e);
}
}
}
只要知道server的ip地址,然后使得客户端和服务器的端口号和ipv4地址一致,就可以进行简单的通信了。