Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Java 使用 Socket 实现客户端和服务器的信息交互

Java 使用 Socket 实现客户端和服务器的信息交互

作者头像
呆呆
修改于 2021-10-08 06:27:31
修改于 2021-10-08 06:27:31
88000
代码可运行
举报
文章被收录于专栏:centosDaicentosDai
运行总次数:0
代码可运行

服务器

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class Server{
	
	private ServerSocket serverSocket;
	private Socket socket;
	private BufferedReader in;
	private PrintWriter out;
	
	public Server() {
		try {
			//	定义连接端口
			serverSocket = new ServerSocket(10000);
			while(true) {
				//	等待客户端连接
				socket = serverSocket.accept();
				//	获取本机地址
				String RemoteIP = socket.getInetAddress().getHostAddress();
				//	获取本机端口号
				String RemotePort = ":" + socket.getLocalPort();
				System.out.println("服务器:有一个用户进来了! IP 地址为:" + RemoteIP + RemotePort);
				in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
				//	获取用户输入的内容
				String line = in.readLine();
				System.out.println("用户:" + line);
				out = new PrintWriter(socket.getOutputStream(),true);
				out.println("服务器:已经收到消息");
				//	关闭资源
				out.close();
				in.close();
				socket.close();
			}
		}catch(IOException e) {
			out.println("wrong");
		}
	}
	
	public static void main(String[] args) {
		
		new Server();
		
	}
	
}

客户端

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class Client{
	
	private Socket socket;
	private BufferedReader in;
	private PrintWriter out;
	
	public Client() {
		
		try {
			System.out.println("尝试连接  127.0.0.1:10000");
			// 设置本机地址和端口号
			socket = new Socket("127.0.0.1",10000);
			System.out.println("连接成功!");
			System.out.print("请输入你想说的话:");
			BufferedReader line = new BufferedReader(new InputStreamReader(System.in));
			out = new PrintWriter(socket.getOutputStream(),true);
			// 获取服务器传过来的消息
			out.println(line.readLine());
			in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
			System.out.println(in.readLine());
			//	关闭资源
			out.close();
			in.close();
			socket.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			out.println("Wrong");
		}
	}
	
	public static void main(String[] args) {
		
		new Client();
		
	}
	
}

服务器

客户端

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Java 面试之 IO 流及Socket
答:序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题;序列化的实现:将需要被序列化的类实现Serializable 接口,该接口没有需实现的方法,implements Serializable 只是为了标注该对象是可被序列化的,然后使用一个输出流(如FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,接着,使用ObjectOutputStream 对象的writeObject(Object obj)方法就可以将参数为obj 的对象写出(即保存其状态),要恢复的话则用输入流。
全栈程序员站长
2022/08/04
3120
经典笔试题-IO流及Socket篇
91、什么是java 序列化,如何实现java 序列化?【基础】 答:序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题;序列化的实现:将需要被序列化的类实现Serializable 接口,该接口没有需实现的方法,implements Serializable 只是为了标注该对象是可被序列化的,然后使用一个输出流(如FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,接着,使用ObjectOutputStream 对象的writeObject(Object obj)方法就可以将参数为obj 的对象写出(即保存其状态),要恢复的话则用输入流。
cwl_java
2020/02/18
6780
Java面试系列17-编程题-读取服务器字符、实现序列化、计数器、1000阶乘、n出列问题等
一,Java的通信编程,编程题(或问答),用JAVA SOCKET编程,读服务器几个字符,再写入本地显示? Server端程序: package test; import java.net.*; import java.io.*; public class Server{ private ServerSocket ss; private Socket socket; private BufferedReader in; private PrintWriter out; public S
Java帮帮
2018/03/19
8100
Java中的Socket编程:实现聊天室应用
在Java中,Socket编程是指使用套接字(Socket)及相关类库来建立网络连接和通信。利用Socket编程可以实现客户端与服务端之间的交互,包括传递数据、文件等。
用户1289394
2023/12/20
3901
Java中的Socket编程:实现聊天室应用
Java Socket编程 多线程server和client通信demo(转)
Serverimport 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.util.HashMap;import java.util.Map;import java.util.Scanner;public cla
在下是首席架构师
2022/08/18
5990
Java 基于TCP协议的Socket编程 —— 服务器端程序
完成功能: (1)服务器先运行起来;  (2)客户端连接服务器,从键盘输入数据,然后发送到服务器;  (3)服务器回应所收到的信息。  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 org.
Lokinli
2023/03/09
4610
Java 基于TCP协议的Socket编程 ——客户端程序
完成功能: (1)服务器先运行起来;  (2)客户端连接服务器,从键盘输入数据,然后发送到服务器;  (3)服务器回应所收到的信息。   import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.InetAddress; import java.net.Socket; public cl
Lokinli
2023/03/09
7710
Java 基于TCP协议的Socket编程 ——客户端程序
简单的java socket 示例
一、搭建服务器端 a)、创建ServerSocket对象绑定监听端口。 b)、通过accept()方法监听客户端的请求。 c)、建立连接后,通过输入输出流读取客户端发送的请求信息。 d)、通过输出流向客户端发送请求信息。 e)、关闭相关资源。 package socket; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWrit
庞小明
2018/03/08
1.2K0
简单的java socket 示例
Java通过Socket实现TCP编程,实现用户登录之服务器相应客户端,客户端和服务端之间的通信
服务器端:   1.创建ServerSocket对象,绑定监听端口;   2.通过accept()方法监听客户端请求;   3.建立连接后通过输入流读取客户端发送的请求信息;   4.通过输出流向客户
用户1289394
2018/10/25
5.6K0
Java通过Socket实现TCP编程,实现用户登录之服务器相应客户端,客户端和服务端之间的通信
Socket编程
IP(Internet Protocol),网络之间互连的协议,IP地址是区分不同计算机的唯一标识
张哥编程
2024/12/19
1140
【Java】Java Socket编程:建立网络连接的基础
在计算机网络编程领域中,Socket是一个关键的概念。它提供了一种通信机制,使得不同计算机之间可以进行数据交换和通信。Java作为一种广泛应用的编程语言,也提供了强大的Socket API,使得开发者可以轻松地实现网络通信。本文将深入探讨Java Socket编程的基础知识、使用方法以及一些常见的应用场景。
人不走空
2024/03/23
5260
【Java】Java Socket编程:建立网络连接的基础
BIO和伪异步IO
JDK1.0到JDK3.0中,Java IO类库中很多Unix网络编程中很多高级特性和接口都没有实现,如Pipe、Channel、Buffer和Selector等。
黑洞代码
2021/01/14
5050
Socket
Socket 据交换,这个双向连接的一端称为一个Socket java.net包中定义的两个类Socket和ServerSocket,分别用来实现双向连接的client和server端 建立连接时所需的寻址信息为远程计算机的ip地址和端口号(Port number) //Server端 import java.net.*; import java.io.*; public class TcpServer { public static void main(String[] args) throws
mathor
2018/07/03
1.1K0
java单客户端和服务器端
运行时,先运行服务器端,再运行客户端,在客户端输入数据,发送给服务器,服务器接收后再返回给客户端,客户端接收后打印到屏幕。 客户端界面:
天天Lotay
2022/12/02
1.2K0
java单客户端和服务器端
JAVA网络编程
一、osi网络7层架构 ip:网络唯一标识。(internet protocol address)网络互联协议地址。分为网络地址和主机地址。 port:端口号,每一个网络应用程序都需要一个以上的端口号。(1-65535)。1000以内的不要用。 osi7层架构
张哥编程
2024/12/13
790
如何为可扩展系统进行Java Socket编程
如何为可扩展系统进行Java Socket编程 从简单I/O到异步非阻塞channel的Java Socket模型演变之旅 上世纪九十年代后期,我在一家在线视频游戏工资工作,在哪里我主要的工作就是编写Unix Unix Berkley Socket和Windows WinSock代码。我的任务是确保视频游戏客户端和一个游戏服务器通信。很幸运有这样的机会写一些Java Socket代码,我对Java流式网络编程和简洁明了的API着迷。这一点都不让人惊讶,Java最初就是设计促进智能设备之间的通信,这一点很好的
用户1289394
2018/02/26
1.1K0
Java Socket编程如何建立两者关系
事实上网络编程简单的理解就是两台计算机相互通讯数据而已.对于程序员而言,去掌握一种编程接口并使用一种编程模型相对就会显得简单的多了.Java SDK提供一些相对简单的Api来完成这些工作.Java Socket编程就是其中之一.对于Java而言.这些Api存在与java.net 这个包里面.因此只要导入这个包就可以准备网络编程了.
张哥编程
2024/12/19
470
使用Zookeeper实现负载均衡轮询例子
​ 使用Zookeeper实现负载均衡原理,服务器端将启动的服务注册到,zk注册中心上,采用临时节点。客户端从zk节点上获取最新服务节点信息,本地使用负载均衡算法,随机分配服务器。
Dream城堡
2022/01/07
7110
Netty 之传统 BIO、NIO 编程
系列文章:http://www.jianshu.com/p/594441fb9c9e
Yano_nankai
2018/10/08
4110
cs是一种重要的网络计算机模式_cs在计算机代表啥
开始之前,先大概说一下吧。计算机网络研究的是理论,讲究的是网络过程中的连接方式,还有协议制定的原因,为什么这么指定,它不是一个简单的敲代码,做码农就好了的,关键是在于创新,先是理解协议为什么这么制定,要怎么样才可以更加好的指定出下一个协议,怎么才可以做出一个好的东西。
全栈程序员站长
2022/09/28
7200
cs是一种重要的网络计算机模式_cs在计算机代表啥
相关推荐
Java 面试之 IO 流及Socket
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验