package test.bwl;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class SocketManager {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) {
SocketManager manager = new SocketManager();
manager.doListen();
}
public void doListen() {
ServerSocket server;
try {
server = new ServerSocket(9991);
while (true) {
Socket client = server.accept();
new Thread(new SSocket(client)).start();
}
} catch (IOException e) {
e.printStackTrace();
}
}
//服务器进程
class SSocket implements Runnable {
Socket client;
public SSocket(Socket client) {
this.client = client;
}
public void run() {
DataInputStream input;
DataOutputStream output;
try {
input = new DataInputStream(client.getInputStream());
output = new DataOutputStream(client.getOutputStream());
//
String listMsg = input.readUTF();
output.writeUTF("Recive: " + listMsg + " \r\n Thx...");
System.out.println("Recive: " + listMsg);
listMsg = input.readUTF();
output.writeUTF("Recive Second: " + listMsg + " \r\n Thx...");
System.out.println("Recive Second: " + listMsg);
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
public class SocketClient {
public static void main(String[] args) {
Socket socket = null;
try {
socket = new Socket("127.0.0.1", 9991);
//向服务器端第一次发送字符串
OutputStream netOut = socket.getOutputStream();
DataOutputStream doc = new DataOutputStream(netOut);
DataInputStream in = new DataInputStream(socket.getInputStream());
//向服务器端第二次发送字符串
doc.writeUTF("list");
String res = in.readUTF();
System.out.println(res);
doc.writeUTF("bye");
res = in.readUTF();
System.out.println(res);
doc.close();
in.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (socket != null) {
try {
socket.close();
} catch (IOException e) {
}
}
}
}
}
分享到:
相关推荐
Java Socket是Java编程...总结来说,这个Java Socket例子展示了如何在Java中创建基本的客户端-服务器通信,特别是在处理中文数据时进行了优化。通过理解Socket的工作原理,我们可以构建出稳定、高效的网络应用程序。
在这个例子中,我们将探讨如何使用Java Socket进行数据的发送和接收。Socket在Java中被封装在`java.net.Socket`和`java.net.ServerSocket`类中,分别用于客户端和服务器端的通信。 首先,我们从服务器端开始。在...
通过这个入门例子,初学者可以理解Java Socket编程的基本原理和操作步骤,为进一步的网络编程打下坚实的基础。实际开发中,还可以结合NIO(非阻塞I/O)或其他高级框架如Netty,提高网络通信的效率和灵活性。
Java Socket通信是网络编程中的基础概念,主要用于实现客户端与服务器之间的双向通信。在这个"JAVA Socket通信示例"中,我们可能会看到如何通过Socket类来创建连接,实现数据的单工、半双工和全双工传输。下面我们将...
本例包含服务器端和客户端,多线程,每线程多次发送,Eclipse工程,启动服务器使用 nu.javafaq.server.NioServer,启动客户端使用 nu.javafaq.client.NioClient。另本例取自javafaq.nv上的程序修改而成
在Java编程语言中,Socket是实现网络通信的基础组件。...同时,这个例子也适合初学者作为入门教程,通过实际操作加深对Socket编程的理解。在实际开发中,可以结合其他技术,如多线程、NIO等,提升程序性能和稳定性。
在这个例子中,我们将探讨如何使用Java的Socket API进行客户端-服务器通信。首先,我们有两个主要的角色:一个是服务器端(Server),它监听特定的端口等待连接;另一个是客户端(Client),它尝试连接到服务器并...
Java Socket远程执行任务是一种通过网络通信在客户端与服务器之间实现命令传递和执行的技术。在这个例子中,客户端将命令和一个名为"FindWordCount.jar"的Java可执行文件发送到服务器,然后服务器执行这个jar包并...
让我们通过三个逐步进阶的例子来理解Java Socket通信的实现: 1. **简单回显服务器**:这个例子展示了最基本的ServerSocket和Socket的使用。服务器端创建ServerSocket并监听一个端口,当客户端连接时,服务器接收...
通过这两个小例子,我们可以看到Java Socket编程的基本结构和TCP与UDP的区别。TCP提供稳定、有序的连接,适合对数据完整性有较高要求的场景;而UDP则适用于对实时性要求高、能接受一定程度数据丢失的场合,如视频流...
一个简单的聊天室系统就是一个使用Java Socket实现的典型例子,服务器端接收多个客户端的连接请求,每个客户端都可以发送消息给其他所有在线的客户端。 十、总结 Java Socket编程是构建网络应用的基础,掌握其原理...
在这个例子中,服务器端创建一个`ServerSocket`并接受一个连接,读取客户端发送的消息并回应,然后关闭Socket。客户端创建一个`Socket`,向服务器发送消息并读取回应,然后关闭Socket。这就是一个基本的短连接通信...
是一个java在进行socket编程时,关于线程池的介绍,有代码和例子
Java Socket教程是一个深入学习Java网络编程的重要资源,它涵盖了如何使用Java的Socket API进行客户端-服务器通信的关键概念和技术。在本文中,我们将详尽探讨Java Socket编程的基础、工作原理以及如何实现基本的...
Java Socket是Java网络编程中的重要组成部分,主要用于实现客户端与服务器之间的通信。在这个实例中,我们有两个关键组件:Server和Client,它们通过Socket进行交互。下面将详细解释Java Socket的工作原理、如何创建...
在这个"一个简单的JAVA SOCKET的例子"中,我们可以通过分析描述和标签了解到,它是一个基于Java的简单聊天程序,包含服务端和客户端,且使用了Swing库来构建用户界面,非常适合初学者学习。 首先,让我们从基础开始...
基于TCP和UDP的socket编程,给出了最简单的示例代码。 相关博文地址: http://blog.csdn.net/wintys/archive/2008/12/15/3525643.aspx http://blog.csdn.net/wintys/archive/2008/12/15/3525619.aspx
例子都可以跑通均已测试通过 com.socket 包中是一个简单的客户端发给服务器的例子 com.socket.complex 使用多线程来模拟通信 com.socket.block 根据客户端传递的参数来返回不同的信息
在本示例中,我们探讨的是一份简单的Java Socket程序,其中融入了线程的概念,这意味着我们可以同时处理多个连接,提高了服务端的并发能力。 首先,我们需要理解Socket的基本概念。Socket是TCP/IP协议族的一部分,...
这个socket通信比较直观,比较容易看懂,实现了Java中的socket的通信问题。是Java网络编程的一个比较不错的例子!