java 网络编程c/s…… 高手请进……

youngnew108 youngnew108 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
为什么我在客户端发送多句消息,服务端却总是只能收到一句呢?怎么改进下?麻烦高手指导》》》

//客户端
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;

public class ClientTest{
public static void main(String []arg)
{
try{
Socket socket=new Socket("127.0.0.1",3024); //向本机的4700端口发出客户请求
BufferedReader sin=new BufferedReader(new InputStreamReader(System.in));//由系统标准输入设备构造bufferedreader对象
PrintWriter os=new PrintWriter(socket.getOutputStream());//由socket对象得到输出流,并构造printwriter对象
BufferedReader is=new BufferedReader(new InputStreamReader(socket.getInputStream()));//由socket对象得到输入流,并构造相应的bufferedreader对象
String readline;
String str;
readline=sin.readLine(); //从系统标准输入读入一字符串
while(true) //若从标准输入读入的字符串为 " bye" 则停止循环
{
os.println(readline); //将从系统标准输入读入的字符串输出到server
os.flush();//刷新输出流,使server马上收到该字符串
str=is.readLine();
System.out.println(" server:" +str); //从server读入一字符串,并打印到标准输出上
if(str.equals("bye"))
{
break;
}
readline=sin.readLine(); //从系统标准输入读入一字符串
} //继续循环
os.close(); //关闭socket输出流
is.close(); //关闭socket输入流
socket.close(); //关闭socket
}catch(Exception e){
System.out.println("error:"+e);
}
}
}



//服务器端
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Date;

public class ServerTest
{
public static void main(String []args)
{
try
{
ServerSocket server=null ;
try
{
server=new ServerSocket(3024); //创建一个serversocket在端口4700监听客户请求
}catch(Exception e)
{
System.out.println(" can not listen to:" +e) ; //出错,打印出错信息
}
Socket socket=null ;
try
{
socket=server.accept(); //使用accept()阻塞等待客户请求,有客户请求到来则产生一个socket对象,并继续执行
}catch(Exception e)
{
System.out.println(" error: " +e); //出错,打印出错信息
}
String line ;
BufferedReader is=new BufferedReader(new InputStreamReader(socket.getInputStream())); //由socket对象得到输入流,并构造相应的bufferedreader对象
PrintWriter os=new PrintWriter(socket.getOutputStream()); //由socket对象得到输出流,并构造printwriter对象
line=is.readLine(); //在标准输出上打印从客户端读入的字符串
while(true) //如果该字符串为 " bye" ,则停止循环
{
System.out.println(" client:" +line); //从client读入一字符串,并打印到标准输出上
if(line.equals("bye")) break;
else if(line.equals("time"))
{
Date dt=new Date();
os.println(dt.getHours()+":"+dt.getMinutes()); //向客户端输出该字符串
os.flush(); //刷新输出流,使client马上收到该字符串
}
else if(line.equals("exit"))
{
os.println("bye"); //向客户端输出该字符串
os.flush(); //刷新输出流,使client马上收到该字符串
break;
}
line=is.readLine(); //从系统标准输入读入一字符串
} //继续循环
os.close(); //关闭socket输出流
is.close(); //关闭socket输入流
socket.close(); //关闭socket
server.close(); //关闭serversocket
}catch(Exception e){
System.out.println("error:"+e);
}
}
}
...全文

相关推荐

学习JAVA—网络编程之Socket、ServerSocket、C/S模式

只要配合这我的博客中的代码演示~平常忘了的话可以下载下来看看~反正也不要积分~下载也不会怀孕~哈

领带有点歪

Java网络编程:构建C/S聊天室实战教程

网络编程是指计算机之间通过网络进行通信的过程。它允许多台计算机共享资源并协同工作,是实现分布式系统的关键技术之一。Java作为一种跨平台语言,其网络编程能力是其核心特性之一。C/S(Client/Server)模式,即客户端/服务器模式,是一种基于网络的计算模型,通过客户端和服务器的分工合作实现应用功能。在这种架构中,客户端负责与用户交互、呈现界面和发送请求,而服务器端则处理业务逻辑、数据存储和响应请求。C/S模式的特点主要包括:分布性:客户端和服务器分布在不同的计算机上,通过网络连接。

或困

Java网络编程实践:打造C/S聊天系统

网络编程是指计算机之间通过网络进行数据传输和交换的过程。在Java中,网络编程主要遵循Socket编程模型。一个Socket是网络通信的端点,通过它发送和接收数据。Socket编程模型分为客户端和服务器端,客户端主动连接服务器端,服务器端则在指定端口监听来自客户端的连接请求。在Java中,网络通信被抽象为java.net包中的类和接口,其中Socket和类是实现Socket通信的核心。Socket通信遵循Client/Server模型,流程大致包括以下几个步骤:服务器端创建。

来自日本的亮仔

Java网络编程(18个Socket C/S实例)

本压缩包包括Socket的单客户服务器通信,多客户服务器相互通信,对象传输,广播式操作等实例,所有实例都在JDK1.4下调试通过

青岛码谷编程

java网络编程1

网络编程的基础部分,适合初学java的爱好者,搭好基础,后面的拓展也差不多一样的原理

zhan_qh
评论 2
收藏 已收藏
分享
返回顶部
youngnew108
Java 51,407 成员 86,130 内容