使用多线程实现多客户端连接服务器,
客户端代码如下:
/** * Socket客户端 * 功能为:发送字符串nihao到服务器端,并打印出服务器端的返回信息 */ import java.io.InputStream; import java.io.OutputStream; import java.net.Socket; public class SocketClient { public static void main(String[] args) { Socket socket = null; InputStream is = null; OutputStream os = null; // 服务器IP String serverIP = "127.0.0.1"; // 服务器端口 int port = 8080; try { // 建立连接 socket = new Socket(serverIP, port); is = socket.getInputStream(); os = socket.getOutputStream(); //发送信息 os.write("nihao".getBytes()); //接收信息 byte[] buffer = new byte[1024]; int n = is.read(buffer); // 输出返回信息 System.out.println("接收服务器信息:" + new String(buffer, 0, n)); } catch (Exception e) { e.printStackTrace(); } finally { try { //关闭流和连接 is.close(); os.close(); socket.close(); } catch (Exception e2) { } } } }
服务器端代码如下:
import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; public class SocketServer { public class ClientHandler implements Runnable { Socket socket = null; InputStream inputStream = null; OutputStream outputStream = null; public ClientHandler(Socket socket) { this.socket = socket; } public void run() { byte[] buffer = new byte[1024]; //读取数据 int length; try { inputStream = socket.getInputStream(); outputStream = socket.getOutputStream(); length = inputStream.read(buffer); System.out.println(new String(buffer,0,length)); outputStream.write("niyehao".getBytes()); } catch (IOException e) { e.printStackTrace(); }finally{ try { inputStream.close(); outputStream.close(); socket.close(); } catch (IOException e) { e.printStackTrace(); } } } } public static void main(String[] args){ new SocketServer().StartServer(); } public void StartServer(){ ServerSocket serverSocket = null; Socket socket = null; int port=5555; try{ serverSocket = new ServerSocket(port); System.out.println("server start"); while(true){ socket = serverSocket.accept(); System.out.println("client connectioned,IP:"+socket.getInetAddress()); Thread t = new Thread(new ClientHandler(socket)); t.start(); } }catch(IOException e){ e.printStackTrace(); } finally{ } } }
发表评论
-
多线程Java Socket编程示例
2012-08-09 15:34 655转载:http://www.blogjava.net/ster ... -
Java环境变量配置
2012-08-09 16:42 702Java环境变量配置如下: 打开我的电脑--属性--高级-- ... -
Java IO操作之FileWriter、FileReader
2012-08-09 16:44 727Java IO流主要有以下几种分类方式: 1、按照输入的方向 ... -
Java对存储过程的调用方法
2012-08-14 19:27 687一、Java如何实现对存储过程的调用: A:不带输出 ... -
读取ApplicationResources.properties资源文件
2012-08-06 11:03 11891、使用java国际化提供的方法读取 ? -
Java获得当前时间
2012-08-06 11:03 770public class -
java IO操作
2012-07-31 17:26 01 InputStream类型 InputStre ... -
Java Calendar的用法
2012-07-31 08:34 772/** * 计算指定日期为当年第几周 * ... -
实现Servlet定时器
2012-07-30 17:17 677转载:http://windking88.iteye.com/ ... -
java定时器Listener
2012-07-30 15:37 0java定时任务,每天定时执行任务 java定时任 ... -
java定时器
2012-07-30 15:27 0java web 定时器 JAVA WEB定时器 ... -
java遍历map
2012-07-30 13:45 0JDK1.4中 Map map = new HashMap() ... -
Java 统计各个单词的个数并排序
2012-05-23 08:53 0这个比较简单,我用来练练手,觉得好玩,便把代码贴出来,比 ... -
java匹配字符串
2012-05-23 08:52 0使用正则表达式啊 Pattern p = Patt ... -
java读取文件
2011-12-02 14:03 6651、按字节读取文件 ... -
Java将字符串保存到文件中
2011-12-01 17:17 3786public void WriteToFile1() thro ...
相关推荐
本篇文章将聚焦于如何使用Java来实现多客户端与服务器端的TCP通信。 首先,我们需要理解TCP通信的基本原理。TCP提供了一种点对点的、全双工的数据通信方式,通过三次握手建立连接,然后进行数据传输,最后通过四次...
总结一下,本教程主要介绍了Java网络编程的基础知识,包括使用`ServerSocket`创建服务器,`Socket`建立客户端连接,以及如何通过输入输出流进行数据交换。同时,也提到了使用Swing创建简单GUI的方法。继续深入实践,...
如果服务器需要同时处理多个客户端的连接,可以考虑使用多线程或者Java的`ExecutorService`来为每个新连接创建一个新的处理线程,以避免阻塞其他客户端的连接请求。 以上就是Java Socket编程中服务器和客户端交互...
在这个场景下,Java NIO能够帮助服务器有效地处理多个客户端连接,并实现客户端之间消息的互发。 首先,我们要理解Java NIO的基本组件。主要包括通道(Channels)、缓冲区(Buffers)和选择器(Selectors)。通道是...
本实验报告主要介绍了Java网络编程的基本概念和实现方法,通过设计和实现一个简单的客户端/服务器应用程序,了解Java网络编程的基本原理和实现方法。 知识点1:Java 网络编程基础 Java 网络编程是指使用 Java 语言...
通过本文,读者可以了解Java中的Socket编程,掌握客户端和服务器端的实现方法,从而实现网络通信。 相关知识点 * Java中的Socket * Socket的基本概念 * 客户端和服务器端的实现 * 数据的发送和接收 * Socket的连接...
JAVA 网络编程服务器端例程,一个测试socket通信的比较好的例程
在Java网络编程中,TCP(Transmission Control Protocol)协议是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP提供了一种可靠的数据传输服务,确保数据的正确顺序和完整性,非常适合文件传输。本教程将...
Java 网络编程可以实现客户端/服务器端的通信、数据传输、网络资源共享等功能。 knowledge point 2: Socket 编程 Socket 编程是 Java 网络编程的核心技术之一。Socket 是一种网络通信机制,允许不同的应用程序...
在这个例子中,我们将深入理解如何在Java中实现TCP网络编程,以及如何利用多线程来处理并发连接。 首先,TCP网络编程涉及到客户端和服务器端的交互。在Java中,我们可以使用`java.net.Socket`类来创建客户端连接,`...
在Java编程领域,客户端-服务器(Client-Server)程序是一种常见的架构模式,它涉及两个主要组件:客户端应用程序和服务器端应用程序。在这个“Java客户端服务器程序学习笔记”中,我们将深入探讨这一主题,包括如何...
总结,使用Java实现XMPP客户端和服务器,涉及到的知识点包括XMPP协议原理、Java编程、网络通信、XML处理、服务器部署以及客户端UI设计。通过该项目,开发者可以深入理解和实践即时通讯系统的构建,提升相关技能。
Java 网络编程是Java开发中的一个重要领域,主要用于实现应用...它涉及到网络连接的建立、数据的双向传输、多线程处理以及异常处理等核心概念。虽然只是一个基础示例,但它为理解更复杂的网络应用打下了坚实的基础。
在IT行业中,网络通信是核心领域之一,尤其是在构建分布式...总的来说,Java实现客户端和服务器传输涉及网络编程、多线程、数据序列化等多个知识点。通过理解和熟练掌握这些概念,开发者可以构建高效、稳定的B/S系统。
本案例关注的是“简单的客户端连接服务器”的实现,这通常涉及使用Socket编程来创建客户端和服务器端的双向通信链路。Socket是网络通信中的一个概念,它提供了进程间通信(IPC)的能力,尤其在网络环境中。 首先,...
在IT领域,Socket编程是一种基础且重要的网络通信技术,它允许客户端和服务器之间进行双向通信。Socket接口提供了在不同计算机间传输数据的低级接口,是互联网应用的基础。本篇文章将详细探讨Socket编程中客户端与...
在Java中,我们可以使用`java.net.Socket`类来创建客户端连接,它代表了两台机器之间的网络连接。Socket编程是基于TCP/IP协议的,确保了数据的可靠传输。要实现FTP客户端,首先需要创建一个Socket连接到FTP服务器,...
在本项目中,"java实现的简易qq客户端+服务器端" 是一个基于Java编程语言构建的即时通讯系统,它模仿了QQ的基本功能,允许用户在局域网内进行聊天。这个系统由两个主要部分组成:客户端(ClientSetup.rar)和服务器及...
本项目名为"Java课程设计(多客户端多服务器聊天室)",旨在让学生掌握这些关键概念,并能够实现一个允许多个客户端和多个服务器同时交互的实时聊天平台。 首先,我们要理解的是**客户端-服务器模型**。在这个模型...