java网络编程案例一:一台客户端与服务器单次通信

格物致知_Tony      2022-05-11     691

关键词:

需求:客户端连接服务器,连接成功后给服务发送“Hello,服务器!”,服务器收到消息后,给客户端返回“欢迎登录”。

  服务器端程序示例代码:

 1 import java.io.InputStream;
 2 import java.io.OutputStream;
 3 import java.net.ServerSocket;
 4 import java.net.Socket;
 5 
 6 public class Server {
 7 
 8     public static void main(String[] args)throws Exception {
 9         //1、准备一个ServerSocket对象,并绑定8888端口
10         ServerSocket server =  new ServerSocket(8888);
11         System.out.println("等待连接....");
12         
13       //2、在8888端口监听客户端的连接,该方法是个阻塞的方法,如果没有客户端连接,将一直等待
14         Socket socket = server.accept();
15         System.out.println("一个客户端连接成功!!");
16         
17         //3、获取输入流,用来接收该客户端发送给服务器的数据
18         InputStream input = socket.getInputStream();
19         //接收数据
20         byte[] data = new byte[1024];
21         StringBuilder s = new StringBuilder();
22         int len;
23         while ((len = input.read(data)) != -1) {
24             s.append(new String(data, 0, len));
25         }
26         System.out.println("客户端发送的消息是:" + s);
27                 
28         //4、获取输出流,用来发送数据给该客户端
29         OutputStream out = socket.getOutputStream();
30         //发送数据
31         out.write("欢迎登录".getBytes());
32         out.flush();
33         
34         //5、关闭socket,不再与该客户端通信
35         //socket关闭,意味着InputStream和OutputStream也关闭了
36         socket.close();
37         
38         //6、如果不再接收任何客户端通信,可以关闭ServerSocket
39         server.close();
40     }
41 }

 

  客户端程序示例代码:

 1 import java.io.InputStream;
 2 import java.io.OutputStream;
 3 import java.net.Socket;
 4 
 5 public class Client {
 6 
 7     public static void main(String[] args) throws Exception {
 8         // 1、准备Socket,连接服务器,需要指定服务器的IP地址和端口号
 9         Socket socket = new Socket("127.0.0.1", 8888);
10 
11         // 2、获取输出流,用来发送数据给服务器
12         OutputStream out = socket.getOutputStream();
13         // 发送数据
14         out.write("Hello,服务器!".getBytes());
15         //会在流末尾写入一个“流的末尾”标记,对方才能读到-1,否则对方的读取方法会一致阻塞
16         socket.shutdownOutput();
17         
18         //3、获取输入流,用来接收服务器发送给该客户端的数据
19         InputStream input = socket.getInputStream();
20         // 接收数据
21         byte[] data = new byte[1024];
22         StringBuilder s = new StringBuilder();
23         int len;
24         while ((len = input.read(data)) != -1) {
25             s.append(new String(data, 0, len));
26         }
27         System.out.println("服务器返回的消息是:" + s);
28         
29         //4、关闭socket,不再与服务器通信,即断开与服务器的连接
30         //socket关闭,意味着InputStream和OutputStream也关闭了
31         socket.close();
32     }
33 }

  注意:运行程序时,必须先启动服务器程序,主动接受客户端程序的连接请求。

 

java网络编程:案例四:多个客户端群聊(代码片段)

  需求:模拟聊天室群聊  客户端要先登录,登录成功之后才能发送和接收消息  分析:  服务器端,需要为每个客户端开启一个线程通信,这样才能实现多个客户端“同时”与服务器通信  客户端,需要把... 查看详情

进程间通信:一台服务器多客户端

】进程间通信:一台服务器多客户端【英文标题】:Interprocesscommunication:oneserverandmultipleclients【发布时间】:2010-10-1204:08:39【问题描述】:我有一个“服务器”进程正在运行,它将通过网络为与服务器进程在同一台机器上运行的... 查看详情

第96题java高级技术-网络编程15(简易聊天室10:一个服务器与多个客户端通信)

回城传送–》《JAVA筑基100例》文章目录零、前言一、题目描述二、解题思路三、代码详解四、推荐专栏五、示例源码下载零、前言​今天是学习JAVA语言打卡的第96天,每天我会提供一篇文章供群成员阅读(不需要订阅付钱),... 查看详情

java_网络

...软件结构网络通信协议ICP/IP综合案例:TCP文件上传案例UDP网络编程三要素B/S(浏览器/服务器)软件结构C/S:客户端/服务器结构B/S:浏览器/服务器结构网络通信协议同一网络中的计算机进行连接和通信时需要遵守一定的规则,即网... 查看详情

java_网络

...软件结构网络通信协议ICP/IP综合案例:TCP文件上传案例UDP网络编程三要素B/S(浏览器/服务器)软件结构C/S:客户端/服务器结构B/S:浏览器/服务器结构网络通信协议同一网络中的计算机进行连接和通信时需要遵守一定的规则,即网... 查看详情

第96题java高级技术-网络编程15(简易聊天室10:一个服务器与多个客户端通信)(代码片段)

回城传送–》《JAVA筑基100例》文章目录零、前言一、题目描述二、解题思路三、代码详解四、推荐专栏五、示例源码下载零、前言​今天是学习JAVA语言打卡的第96天,每天我会提供一篇文章供群成员阅读(不需要订阅付... 查看详情

java网络多线程专题(代码片段)

...络通信编程应用案例(使用字节流)服务端代码客户端代码:TCP网络通信编程应用案例2服务端代码:客户端代码 查看详情

c#中的socket(代码片段)

...算机的某个端口二:使用TCP协议(模拟服务器向客户端发消息)通信流程:1.创建Socket——服务器和客户端2.绑定ip和端口号——服务器3.开始监听(等待客户端连接)——服务器4.发起连接的请求——客户端4.接收客... 查看详情

io流中「线程」模型总结(代码片段)

...数据-业务执行-应答写数据」的形式;Java提供「三种」IO网络编程模型,即:「BIO同步阻塞」、「NIO同步非阻塞」、「AIO异步非阻塞」;二、同步阻塞1、模型图解BIO即同步阻塞,服务端收到客户端的请求时,会启动一个线程处理... 查看详情

网络编程

一:什么是网络编程?  网络通常指的是计算机中的互联网是由堕胎计算机通过网线或其他媒介相互链接完成的。编写基于网络的应用程序的过程称之为网络编程。如果要想与其他计算机建立连接,就必须要让你的计算机与其... 查看详情

java中socket网络通信,实现客户端上传文件案例(代码片段)

服务端代码/*文件上传案例服务器端:读取客户端上传的文件,保存到服务器的硬盘,给客户端回写"上传成功"明确:数据源:客户端上传的文件目的地:服务器的硬盘d:\\\\upload\\\\1.jpg实现步骤:1.创建一个服务器ServerSocket对象,和系... 查看详情

java网络编程-tcp通信(代码片段)

文章目录TCP通信快速入门(一发一收)编写客户端代码编写服务器代码多发多收多发多收(同时接受多个客户端)线程池优化TCP通信快速入门(一发一收)TCP协议回顾:TCP是一种面向连接,安全、可靠的传输数据的协议传输前,采... 查看详情

java案例:基于tcp的简单聊天程序(代码片段)

...08;一)编写服务器端程序-Server.java(二)编写客户端程序-Client.java(三)测试服务器端与客户端能否通信(四)程序优化思路-服务器端采用多线程一、如何实现TCP通信要实现TCP通信需要创建一个服务器... 查看详情

网络编程知识点

C/S架构:客户端与服务端架构B/S架构:浏览器与服务端架构想要实现通信,要具备网卡网线,网卡上有全球唯一mac地址多台机器实现通讯要用到交换机,一台机器通过交换机寻找一台机器叫做广播,回复的过程叫做单播arp协议:... 查看详情

java网络编程案例三:多个客户端上传文件(代码片段)

  需求:每一个客户端启动后都可以给服务器上传一个文件,服务器接收到文件后保存到一个upload目录中。可以同时接收多个客户端的文件上传。  分析:  (1)服务器端要“同时”处理多个客户端的请求,那么必... 查看详情

java网络编程

1.Socket编程原理网络上的实体通过端到端的连接进行数据的发送与接收,即进行通信。通信的一端就叫做一个socket。要通过socket进行通信,服务端和客户端都需要为通信做一些准备。首先,服务端需要初始化socket,然后为socket绑... 查看详情

假期(网络编程)

"""一、客户端/服务端架构:1、硬件C/S架构(打印机)2、软件C/S架构互联网中处处都是CS架构,服务端与客户端CS架构与socket的关系-我们学习socket就是为了完成C/S架构的开发二、OSI七层模型:一个完整的计算机系统是由硬件、操... 查看详情

tcp案例代码(代码片段)

文章目录TCP网络编程的案例代码普通服务端/客户端代码多线程方式代码TCP网络编程的案例代码描述客户端与服务端的通信普通服务端/客户端代码服务端importjava.io.*;importjava.net.ServerSocket;importjava.net.Socket;/***服务端*/publicclassServerSo... 查看详情