服务端代码:
import java.io.*;
import java.net.*;
class Server
{
public static void main(String[] args)
{
try
{
//创建一个服务端并设置端口
ServerSocket server=new ServerSocket(5555);
//监听客户端Socket
Socket client=server.accept();
//得到客户端的输入流
BufferedReader in=new BufferedReader(new InputStreamReader(client.getInputStream()));
//得到客户端的输出流
PrintWriter out=new PrintWriter(client.getOutputStream());
//得到服务端的输入流
BufferedReader wt=new BufferedReader(new InputStreamReader(System.in));
while(true)
{
//得到客户端消息
String client_msg=in.readLine();
//显示
System.out.println(client_msg);
//得到服务端输入内容
String server_msg=wt.readLine();
//利用客户端的输出流发送将内容发送到客户端
out.println(server_msg);
//刷新客户端
out.flush();
//如果客户端输入end 关闭客户端Socket
if(str.equals("end"))
{
client.close();
break;
}
}
}
catch (Exception x)
{
System.out.println(x.toString());
}
}
}
客户端代码:
import java.io.*;
import java.net.*;
class Client
{
static Socket server;
public static void main(String[] args)
{
try
{
//连接服务端端口创建一个客户端
server=new Socket(InetAddress.getLocalHost(),5555);
//得到服务端的输入流
BufferedReader in=new BufferedReader(new InputStreamReader(server.getInputStream()));
//得到服务端的输出流
PrintWriter out=new PrintWriter(server.getOutputStream());
//得到客户端的输入流
BufferedReader wt=new BufferedReader(new InputStreamReader(System.in));
while(true)
{
//客户端输入内容
String str=wt.readLine();
//发送到服务端
out.println(str);
//刷新服务端
out.flush();
//如果服务端端输入end 关闭服务端端Socket
if(str.equals("end"))
{
server.close();
break;
}
//显示服务端发送的内容
System.out.println(in.readLine());
}
}
catch (Exception x)
{
System.out.println(x.toString());
}
}
}
这种模式我们可以用这个图来表示:
双方都获得了对方的IO流,当输入完毕敲回车后消息就保存在了对方的Input流中并发送过去,然后对方就可以readLine()显示了
已经实现聊天的基本内容,不过尚有两个功能未实现,一个是多客户端聊天,还有就是这个程序只能是你一句我一句的发送,不能连续发送多条消息,汗~~,本人也是初学,还望高手多多指教,小弟感激不尽
分享到:
相关推荐
Java Socket是Java编程语言中用于网络通信的核心API,它提供了低级别的、面向连接的、基于TCP/IP协议的网络通信能力。在"Java Socket 视频流转发Socket"这个主题中,我们将深入探讨如何使用Java Socket来处理视频流...
Java Socket是Java编程语言中实现网络通信的基础组件,它提供了应用程序与网络协议的接口,使得开发者可以构建基于TCP(传输控制协议)或UDP(用户数据报协议)的应用程序。本教程将深入探讨Java Socket编程的核心...
在这个场景中,我们讨论的是如何使用Java的Socket来实现文件上传功能,即从客户端将文件发送到服务器,然后保存到服务器的数据库中。这个过程涉及到多个关键知识点,下面我们将详细探讨。 1. **Java Socket基础**:...
Java Socket 是一种网络通信协议,它是Java编程语言中实现客户端-服务器模型的基础。Socket 提供了低级别的、面向连接的、双向通信的网络接口,允许应用程序通过网络进行数据传输。在本示例中,我们将深入探讨Java ...
Java Socket 连接池实现是提高网络应用性能和效率的关键技术之一。在高并发的网络环境中,频繁地创建和销毁Socket连接会导致大量的系统资源浪费,影响整体性能。为了解决这个问题,开发人员通常会使用连接池来管理和...
通过使用SSLSocket,Java开发者可以确保在网络上传输的数据受到保护,即使在网络层面上被截获,数据也难以被解读。这对于维护用户的隐私和数据完整性至关重要。然而,正确配置和使用SSL/TLS协议并不总是直观的,需要...
通过这个入门例子,初学者可以理解Java Socket编程的基本原理和操作步骤,为进一步的网络编程打下坚实的基础。实际开发中,还可以结合NIO(非阻塞I/O)或其他高级框架如Netty,提高网络通信的效率和灵活性。
java socket client 断线重连的简单实现 有什么意见可以提哦
下面是一个简单的Java Socket客户端示例,用于连接到一个聊天服务器: ```java import java.io.*; import java.net.*; public class ChatClient { public static void main(String[] args) { try (Socket socket...
在Java编程语言中,Socket是实现网络通信的基础组件。它提供了进程间通信(IPC)的能力,特别是在不同机器之间。在本示例中,我们将深入探讨如何使用Java Socket进行图片的传输,这对于理解网络编程和数据交换至关...
Java Socket工具类是Java网络编程中的重要组成部分,它提供了客户端和服务器端进行双向通信的基础。在本示例中,我们将探讨如何使用Java Socket创建一个简单的控制台聊天系统,包括客户端(client)和服务器端...
Java Socket网络编程是Java平台中的核心特性,它为开发者提供了在TCP/IP协议下创建网络应用的能力。Socket编程主要用于实现客户端和服务器之间的通信,基于客户机/服务器模型。在这个模型中,服务器端通常处于被动...
java socket源码解析 java socket源码解析 java socket源码解析 java socket源码解析
Java Socket技术是网络编程中的重要组成部分,主要用于实现两个应用程序之间的通信。在这个场景中,我们讨论的是如何使用Java Socket来实现实时的屏幕监控功能,即服务端能够远程查看客户端的屏幕内容,这样的功能在...
Java Socket 实现 SMTP 发送邮件是一项常见的编程任务,尤其在自动化通知、系统间通信或用户交互中非常有用。SMTP(Simple Mail Transfer Protocol)是互联网上用于传输电子邮件的标准协议,而Java Socket则是Java...
Java Socket编程是网络编程的基础,它是Java API提供的一种用于实现客户端-服务器通信的接口。在Java中,Socket类和ServerSocket类是进行网络通信的核心组件。这个经典版本可能包含了一系列关于如何有效使用Java ...
本教程"Java网络编程从入门到精通"旨在帮助初学者和有经验的开发者深入理解这一领域,从基础知识到高级主题,提供了一套全面的学习资源。 在Java中,网络编程主要涉及以下核心知识点: 1. **Socket编程**:Java的...
在标题“java socket nginx tcp转发 用户真实IP测试”中,主要探讨的是如何在Java的Socket连接中,通过Nginx的TCP转发获取到实际用户的IP地址。 在描述中提到的博客文章,很可能是详细介绍了这个问题的解决方案。...
Java Socket是Java编程语言中用于网络通信的核心API,它提供了低级别的、面向连接的、基于TCP/IP协议的网络通信服务。本教程将深入探讨Java Socket的相关知识点,旨在帮助开发者理解和掌握如何在Java环境中构建网络...