Socket通信,实现单客户端和服务器交互的C/S结构

本文详细介绍了如何使用Java进行Socket通信,通过创建客户端和服务器端程序,实现单客户端与服务器的交互。首先,展示了客户端程序,它连接到本地的9000端口,并发送输入的数据直到接收到'bye'为止。接着,描述了服务器端程序,它在9000端口监听,接收客户端请求,打印接收到的信息,直至接收到'bye'。运行时需确保先启动服务器端程序。
摘要由CSDN通过智能技术生成

首先创建客户端程序:

package FirstPackages;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;

public class Client 
{
public static void main(String args[]) 
{
try
{
Socket socket=new Socket("127.0.0.1",9000);//向本机的9000端口发出客户请求
System.out.println("客户端开启");
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));//InputStreamReader是字节流通向字符流的桥梁,从底层流读取字节

                                                                                                                                                             //BufferedReader 从字符输入流中读取文本
PrintWriter os=new PrintWriter(socket.getOutputStream());//getOutputStream()返回此套接字的输出流
String readline;
readline=in.readLine();
while(!readline.equals("bye"))//若读入的字符串为bye,就停止循环
{
os.println(readline);//将读入的字符串输出到Server
os.flush();//刷新输出流,使Server马上收到该字符串
readline=in.readLine();
}
os.close();//关闭Socket输出流
socket.close();//关闭Socket
}catch(IOException e){System.out.println("error:"+e);}
}
}


然后创建服务器端程序:

package FirstPackages;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;

public class Server 
{
public static void main(String args[])
{
try{
ServerSocket server=new ServerSocket(9000);//在端口9000监听客户请求
System.out.println("服务已开启");
Socket socket=server.accept();//使用accept()阻塞等待客户请求
System.out.println("接收到客户端的访问");
BufferedReader is=new BufferedReader(new InputStreamReader(socket.getInputStream()));
String line=" ";
while(line!=null&&!line.equals("bye"))
{
line=is.readLine();
       System.out.println("Server:"+line);
}
is.close();
socket.close();
server.close();
}catch(IOException e){System.out.println("error:"+e);}
}
}

运行时有个先后顺序,要先运行服务器端的程序,再运行客户端的程序,下面是我程序的运行结果截图。





  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值