`

一个简单的java socket程序

阅读更多
只有一个客户端的socket程序
服务器端程序:
package socketdemo;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class MyServer {
	public static void main(String[] args) throws IOException {
		ServerSocket server = new ServerSocket(8800);
		Socket client = server.accept();
		BufferedReader in = new BufferedReader(new InputStreamReader(client
				.getInputStream()));
		PrintWriter out = new PrintWriter(client.getOutputStream());
		while (true) {
			String str = in.readLine();
			System.out.println(str); // 读取客户端,写入服务器端
			out.println("has receive....");// 写入客户端
			out.flush();
			if (str.equals("end"))
				break;
		}
		client.close();
	}
}


其中8800是端口号,可以任意指定一个系统没有被占用的端口号即可

客户端程序:

package socketdemo;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;

public class MyClient {
	static Socket server;

	public static void main(String[] args) throws Exception {
		server = new Socket(InetAddress.getLocalHost(), 8800);   //服务器的主机名(即ip地址)和端口号
		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();
			if (str.equals("end")) {
				break;
			}
			System.out.println(in.readLine()); // 读取服务器端,写入客户端,has receiving
		}
		server.close();
	}
}


执行时,可以在一台主机上执行,也可在两台主机执行,只要指定好ip地址和端口号即可。先执行服务器端程序,再开启客户端,客户端每输入一个字符串,都会在服务器端显示,直到客户端输入end,结束通信。。

多客户端程序,客户端程序不变,服务器端程序如下:

package socketdemo;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class MultiUserServer extends Thread { // 多客户端的服务器程序
	private Socket client;

	public MultiUserServer(Socket c) {
		this.client = c;
	}

	public void run() {
		try {
			BufferedReader in = new BufferedReader(new InputStreamReader(client
					.getInputStream()));
			PrintWriter out = new PrintWriter(client.getOutputStream());
			// Mutil User but can't parallel
			while (true) {
				String str = in.readLine();
				System.out.println(str);
				out.println("has receive....");
				out.flush();
				if (str.equals("end"))
					break;
			}
			client.close();
		} catch (IOException ex) {
		} finally {

		}
	}

	public static void main(String[] args) throws IOException {
		ServerSocket server = new ServerSocket(8800);
		while (true) {
			// transfer location change Single User or Multi User
			MultiUserServer mu = new MultiUserServer(server.accept());
			mu.start();
		}
	}
}
分享到:
评论

相关推荐

    Java Socket实现简单的聊天程序

    总结来说,Java Socket实现的简易聊天程序是一个基础的网络通信示例,它展示了如何使用Socket进行数据交换,适用于初学者理解网络编程的基本原理。随着技能的提升,可以在此基础上添加更多的功能和优化,构建更完善...

    java socket通讯程序源码

    2. **带交互的聊天室**:在此基础上,可以扩展为多个客户端同时连接到服务器,形成一个简单的聊天室。服务器端需要维护一个客户端列表,接收到任何客户端的消息后广播给其他所有客户端。客户端则可以发送消息并接收...

    一个简单的java socket模型

    在这个简单的Java Socket模型中,我们将深入探讨如何创建和使用Sockets进行数据传输,这对于初学者来说是一块重要的学习内容。 首先,理解Socket的基本概念是至关重要的。Socket可以被看作是两台计算机之间通信的...

    简单Java socket通信程序

    以上就是关于“简单Java socket通信程序”的主要知识点,包括了服务器端和客户端的基本操作以及Socket通信的一般流程。实际开发中,还需要根据具体需求进行扩展,如添加身份验证、加密通信、心跳机制等高级功能。

    java socket 简单的文件传输程序

    总的来说,这个简单的文件传输程序利用了Java Socket API实现了客户端和服务器之间的文件交换,虽然它可能没有涵盖高级特性,如断点续传、错误恢复或性能优化,但对于理解和学习Socket编程基础是很有帮助的。...

    JAVA Socket聊天程序

    在设计一个简单的Java Socket聊天程序时,通常会包含以下几个关键步骤: 1. **服务器端**: - 创建ServerSocket实例,指定监听的端口号。 - 使用ServerSocket的`accept()`方法等待客户端的连接请求。当有客户端...

    Java socket聊天程序 有界面

    Socket分为ServerSocket和Socket两种类型,ServerSocket用于监听客户端连接,Socket则代表一个客户端与服务器的连接实例。 2. **多线程处理**: 在多人聊天室中,每个客户端连接都需要独立的线程来处理,以便同时...

    Java Socket 聊天程序(图形界面)

    实现Java Socket聊天多线程编程,图形化界面,多人聊天(群聊),私人聊天,是基于本地模拟的Java聊天程序。 Java Socket聊天程序是我用了三天的时间写出来,用Netbeans建的工程,图形化界面是Netbeans拖拉出来的,...

    java socket服务器客户端程序

    这是一个简单的Java Socket服务器客户端程序框架: ```java // 服务器端 ServerSocket server = new ServerSocket(8080); while (true) { Socket clientSocket = server.accept(); new Thread(new ClientHandler...

    java socket 简单成绩管理系统

    Java Socket 简单成绩管理系统是一个基于JAVA编程语言和Socket通信技术实现的初级项目,它主要目的是帮助初学者理解如何运用Socket进行网络通信,并在实际应用中管理学生的成绩。在这个系统中,通常会包含服务器端...

    java socket聊天程序,有界面

    在Java聊天室软件中,开发者通常会创建一个主线程来处理服务器的监听和Socket的创建,然后为每个客户端创建单独的线程来处理通信,以保证程序的并发性和响应性。此外,为了确保数据的安全性和完整性,还可以使用SSL/...

    java的Socket实现的多人聊天程序

    Java的Socket实现的多人聊天程序是一个基于网络通信的项目,主要利用了Java的Socket类来构建客户端和服务端的通信桥梁。Socket是TCP/IP协议的一部分,它提供了两台计算机之间进行数据传输的基础。在这个项目中,...

    java socket 视频流转发socket

    在提供的压缩包文件`socketServer`中,可能包含了一个简单的服务器端示例,用于演示如何接收和转发视频流。你可以通过查看和运行这个示例来进一步理解和实践上述概念。学习和理解Java Socket对于构建分布式系统、...

    java聊天Socket小程序

    Java聊天Socket小程序是一种基于TCP/IP协议的网络通信应用,它允许...然而,需要注意的是,网络通信中可能存在各种异常情况,如连接中断、数据丢失等,因此在编写Socket程序时,应充分考虑异常处理和错误恢复机制。

    Java基于socket的进程间通信 聊天小程序

    在这个场景下,我们讨论的是一个简单的聊天小程序,它利用了Java的Socket库来搭建客户端与服务器之间的桥梁,实现数据的实时交互。下面将详细阐述相关知识点。 1. **Java Socket**: Java的Socket类是TCP/IP协议的...

    java socket连接池 实现

    以下是一个简单的Socket连接池实现步骤: 1. 初始化连接池:设置最大连接数、最小连接数、超时时间等参数,并预创建一部分Socket连接。 2. 获取连接:当应用程序需要建立Socket连接时,从连接池中获取一个闲置的...

    java socket客户端程序

    java socket做的通信client端程序

    JAVA Socket 经典教程

    Java Socket是Java编程语言中实现网络通信的基础组件,它提供了应用程序与网络协议的接口,使得开发者可以构建基于TCP...实践是检验理论的最好方式,动手编写Socket程序,不断尝试和调试,将有助于深化理解和提升技能。

    基于java socket网络编程实现的简单模拟qq聊天的程序,可实现并发聊天

    在这个基于Java Socket实现的简单模拟QQ聊天程序中,我们主要探讨以下几个核心知识点: 1. **Socket原理**:Socket是网络通信中的一个端点,它允许两台计算机通过网络进行数据交换。在TCP/IP协议栈中,Socket接口为...

Global site tag (gtag.js) - Google Analytics