一个 Java 的 Sock…
2013-11-05 14:30
435 查看
一个 HelloWord 级别的 Java Socket 通信的例子。通讯过程:
先启动 Server 端,进入一个死循环以便一直监听某端口是否有连接请求。然后运行 Client
端,客户端发出连接请求,服务端监听到这次请求后向客户端发回接受消息,连接建立,启动一个线程去处理这次请求,然后继续死循环监听其他请求。客户端输入字符串后按回车键,向服务器发送数据。服务器读取数据后回复客户端数据。这次请求处理完毕,启动的线程消亡。如果客户端接收到
"OK"
之外的返回数据,会再次发送连接请求并发送数据,服务器会为这次连接再次启动一个线程来进行响应。。。直到当客户端接收到的返回数据为
"OK" 时,客户端退出。
服务端源代码:
package com.defonds.socket.begin;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public
static final int PORT =
12345;//监听的端口号
public
static void main(String[] args)
{
System.out.println("服务器启动...\n");
Server server = new
Server();
server.init();
}
public void
init()
{
try {
ServerSocket serverSocket = new
ServerSocket(PORT);
while (true)
{
// 一旦有堵塞,
则表示服务器与客户端获得了连接
Socket client =
serverSocket.accept();
//
处理这次连接
new
HandlerThread(client);
}
} catch (Exception e)
{
System.out.println("服务器异常: " +
e.getMessage());
}
}
private
class HandlerThread implements Runnable
{
先启动 Server 端,进入一个死循环以便一直监听某端口是否有连接请求。然后运行 Client
端,客户端发出连接请求,服务端监听到这次请求后向客户端发回接受消息,连接建立,启动一个线程去处理这次请求,然后继续死循环监听其他请求。客户端输入字符串后按回车键,向服务器发送数据。服务器读取数据后回复客户端数据。这次请求处理完毕,启动的线程消亡。如果客户端接收到
"OK"
之外的返回数据,会再次发送连接请求并发送数据,服务器会为这次连接再次启动一个线程来进行响应。。。直到当客户端接收到的返回数据为
"OK" 时,客户端退出。
服务端源代码:
package com.defonds.socket.begin;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public
static final int PORT =
12345;//监听的端口号
public
static void main(String[] args)
{
System.out.println("服务器启动...\n");
Server server = new
Server();
server.init();
}
public void
init()
{
try {
ServerSocket serverSocket = new
ServerSocket(PORT);
while (true)
{
// 一旦有堵塞,
则表示服务器与客户端获得了连接
Socket client =
serverSocket.accept();
//
处理这次连接
new
HandlerThread(client);
}
} catch (Exception e)
{
System.out.println("服务器异常: " +
e.getMessage());
}
}
private
class HandlerThread implements Runnable
{
相关文章推荐
- 黑马程序员JAVA编写的 时钟 程序
- JAVA 线程 开启线程 一个类…
- 奇怪的编码,奇怪的显示——一个关于 的故事
- java 声明一个构造方法
- 从 Java 应用程序动态生…
- 如何在 Eclipse中更快地编写 Java …
- JAVA 线程 开启线程 一个类里只开…
- 一步一步教你用 java&n…
- 怎样成为一个高级JAVA工程师 .
- Java GUI 使用 Vector 类 建立表格
- java 定义一个方法在主类中调用
- 一个米农对 百度  与 谷歌 的评价 …
- js 获取 前一个页面的 url
- "Dynamic Code Evolution for Java dcevm"发现一个NB的东西
- 写一个函数返回参数二进制中 1 的个数 比如: 15     0000 1111     4 个 1
- 应该被记住的 8 位 Java 人物
- java 中的 加密
- JAVA 线程 开启线程 一个类里只开…
- Java Math的 floor,roun…
- 理解 Java 的 GC 与 幽灵引用