TCP:
服务器端:
import java.net.*;
import java.io.*;
import java.util.Scanner;
public class Server {
public static void main(String[] args) {
System.out.println("服务器已启动,等待客户端连接......");
for(int i=1;i<4;i++){
server();
}
}
public static void server(){
try{
ServerSocket ss=new ServerSocket(6001);
Socket s=ss.accept();
OutputStream os=s.getOutputStream();
InputStream is=s.getInputStream();
System.out.println("输入消息(按Enter发送):");
Scanner in=new Scanner(System.in);
System.out.print("服务器端:");
String x=in.nextLine();
os.write(x.getBytes());
byte[] buf=new byte[100];
int len=is.read(buf);
String k=new String(buf,0,len);
System.out.println("客户端:"+k);
os.close();
is.close();
s.close();
ss.close();
}
catch(Exception ex){
ex.printStackTrace();
}
}
}
客户端:
import java.net.*;
import java.io.*;
import java.util.Scanner;
public class Client {
public static void main(String[] args) {
System.out.println("请输入服务器的IP:");
Scanner in=new Scanner(System.in);
String x=in.nextLine();
for(int i=1;i<4;i++){
client(x);}
}
public static void client(String x){
try{
Socket s=new Socket(x,6001);
OutputStream os=s.getOutputStream();
InputStream is=s.getInputStream();
System.out.println("与服务器成功建立连接,接受消息中……");
byte[] buf=new byte[100];
int len=is.read(buf);
String k=new String(buf,0,len);
System.out.println("服务器端: "+k);
System.out.println("输入消息(按Enter发送)");
Scanner in=new Scanner(System.in);
System.out.print("客户端:");
String xx=in.nextLine();
os.write(xx.getBytes());
os.close();
is.close();
s.close();
}
catch(Exception ex){
ex.printStackTrace();
}
}
}
运行结果:
实验后的问题就是一个客户端不能连续输入通话消息,而且一个服务器不能连接多台客户机,应在后续程序中改进。