下面是两个C/S架构的基于不同通讯协议的简单例子。
1.TCP程序实现
TCP程序的开发使用ServerSocket、Socket类完成服务端和客户端的开发。
运行时先要启动服务器端,然后启动客户端。
单线程:
服务器端:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;
public class EchoServer {
public static void main(String[] args)throws Exception
{
ServerSocket server=new ServerSocket(8888);//创建一个Socket,绑定到8888端口
Socket client=null;//表示连接的客户端
boolean flag=true;
while(flag)
{
System.out.println("等待客户端连接。。。。。");
client=server.accept();//等待并接受客户端的Socket连接
BufferedReader buf=new BufferedReader(new InputStreamReader(client.getInputStream()));
//得到客户端的输出流
PrintStream pout=new PrintStream(client.getOutputStream());
boolean temp=true;
while(temp)//循环接收用户输入的内容并回应
{
String str=buf.readLine();
if(str==null||"".equals(str))
{
temp=false;
break;
}
else if("bye".equals(str))
{
temp=false;
break;
}
pout.println("ECHO:"+str);//回送信息
}
pout.close();
client.close();
}
server.close();
}
}
客户端:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.Socket;
public class EchoClient {
public static void main(String[] args)throws Exception
{
Socket client=new Socket("localhost",8888);//创建一个Socket连接,连接到localhost:8888
BufferedReader input=new BufferedReader(new InputStreamReader(System.in));
BufferedReader buf=null;
buf=new BufferedReader(new InputStreamReader(client.getInputStream()));
PrintStream out=new PrintStream(client.getOutputStream());
boolean flag=true;
while(flag)
{
System.out.println("请输入要发送的内容:<span style="font-size: 10pt; color: #2a00ff; font-family: "Courier New%2