`
lengrenhanbing
  • 浏览: 47857 次
  • 性别: Icon_minigender_1
  • 来自: 泰安
社区版块
存档分类
最新评论

Java网络编程实现多客户端连接服务器

    博客分类:
  • Java
 
阅读更多

使用多线程实现多客户端连接服务器,

客户端代码如下:

/**
 * 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实现TCP多客户端与服务器端的通信

    本篇文章将聚焦于如何使用Java来实现多客户端与服务器端的TCP通信。 首先,我们需要理解TCP通信的基本原理。TCP提供了一种点对点的、全双工的数据通信方式,通过三次握手建立连接,然后进行数据传输,最后通过四次...

    java网络编程客户端和服务端

    总结一下,本教程主要介绍了Java网络编程的基础知识,包括使用`ServerSocket`创建服务器,`Socket`建立客户端连接,以及如何通过输入输出流进行数据交换。同时,也提到了使用Swing创建简单GUI的方法。继续深入实践,...

    java socket编程 服务器和客户端

    如果服务器需要同时处理多个客户端的连接,可以考虑使用多线程或者Java的`ExecutorService`来为每个新连接创建一个新的处理线程,以避免阻塞其他客户端的连接请求。 以上就是Java Socket编程中服务器和客户端交互...

    Java NIO实现多个客户端之间的消息互发,客户端与服务器完整代码

    在这个场景下,Java NIO能够帮助服务器有效地处理多个客户端连接,并实现客户端之间消息的互发。 首先,我们要理解Java NIO的基本组件。主要包括通道(Channels)、缓冲区(Buffers)和选择器(Selectors)。通道是...

    Java网络编程实验报告.pdf

    本实验报告主要介绍了Java网络编程的基本概念和实现方法,通过设计和实现一个简单的客户端/服务器应用程序,了解Java网络编程的基本原理和实现方法。 知识点1:Java 网络编程基础 Java 网络编程是指使用 Java 语言...

    Java基于socket实现的客户端和服务端通信功能完整实例

    通过本文,读者可以了解Java中的Socket编程,掌握客户端和服务器端的实现方法,从而实现网络通信。 相关知识点 * Java中的Socket * Socket的基本概念 * 客户端和服务器端的实现 * 数据的发送和接收 * Socket的连接...

    JAVA 网络编程服务器端例程

    JAVA 网络编程服务器端例程,一个测试socket通信的比较好的例程

    Java网络编程之TCP协议下—上传文件到服务器程序

    在Java网络编程中,TCP(Transmission Control Protocol)协议是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP提供了一种可靠的数据传输服务,确保数据的正确顺序和完整性,非常适合文件传输。本教程将...

    Java网络编程实践课程设计报告.pdf

    Java 网络编程可以实现客户端/服务器端的通信、数据传输、网络资源共享等功能。 knowledge point 2: Socket 编程 Socket 编程是 Java 网络编程的核心技术之一。Socket 是一种网络通信机制,允许不同的应用程序...

    java网络编程TCP 多线程连接例子

    在这个例子中,我们将深入理解如何在Java中实现TCP网络编程,以及如何利用多线程来处理并发连接。 首先,TCP网络编程涉及到客户端和服务器端的交互。在Java中,我们可以使用`java.net.Socket`类来创建客户端连接,`...

    Java 客户端服务器程序 学习笔记

    在Java编程领域,客户端-服务器(Client-Server)程序是一种常见的架构模式,它涉及两个主要组件:客户端应用程序和服务器端应用程序。在这个“Java客户端服务器程序学习笔记”中,我们将深入探讨这一主题,包括如何...

    JAVA实现XMPP客户端和服务器

    总结,使用Java实现XMPP客户端和服务器,涉及到的知识点包括XMPP协议原理、Java编程、网络通信、XML处理、服务器部署以及客户端UI设计。通过该项目,开发者可以深入理解和实践即时通讯系统的构建,提升相关技能。

    java 简单的网络聊天程序 服务器连接多个客户端

    Java 网络编程是Java开发中的一个重要领域,主要用于实现应用...它涉及到网络连接的建立、数据的双向传输、多线程处理以及异常处理等核心概念。虽然只是一个基础示例,但它为理解更复杂的网络应用打下了坚实的基础。

    用Java实现客户端和服务器传输

    在IT行业中,网络通信是核心领域之一,尤其是在构建分布式...总的来说,Java实现客户端和服务器传输涉及网络编程、多线程、数据序列化等多个知识点。通过理解和熟练掌握这些概念,开发者可以构建高效、稳定的B/S系统。

    简单的客户端连接服务器.zip

    本案例关注的是“简单的客户端连接服务器”的实现,这通常涉及使用Socket编程来创建客户端和服务器端的双向通信链路。Socket是网络通信中的一个概念,它提供了进程间通信(IPC)的能力,尤其在网络环境中。 首先,...

    scoket编程中客户端与服务器端的信息互通

    在IT领域,Socket编程是一种基础且重要的网络通信技术,它允许客户端和服务器之间进行双向通信。Socket接口提供了在不同计算机间传输数据的低级接口,是互联网应用的基础。本篇文章将详细探讨Socket编程中客户端与...

    java ftp客户端,服务端

    在Java中,我们可以使用`java.net.Socket`类来创建客户端连接,它代表了两台机器之间的网络连接。Socket编程是基于TCP/IP协议的,确保了数据的可靠传输。要实现FTP客户端,首先需要创建一个Socket连接到FTP服务器,...

    java实现的简易qq客户端+服务器端

    在本项目中,"java实现的简易qq客户端+服务器端" 是一个基于Java编程语言构建的即时通讯系统,它模仿了QQ的基本功能,允许用户在局域网内进行聊天。这个系统由两个主要部分组成:客户端(ClientSetup.rar)和服务器及...

    java 课程设计(多客户端多服务器聊天室)

    本项目名为"Java课程设计(多客户端多服务器聊天室)",旨在让学生掌握这些关键概念,并能够实现一个允许多个客户端和多个服务器同时交互的实时聊天平台。 首先,我们要理解的是**客户端-服务器模型**。在这个模型...

Global site tag (gtag.js) - Google Analytics