Server.java
package com.simonftxy.core;
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 Server extends ServerSocket {
public Server(int serverPort) throws IOException {
super(serverPort);
try {
while (true) {
Socket socket = accept();
if (socket == null) {
System.out.println("connect fail");
} else {
System.out.println("Socket connected");
new ServerThread(socket);
}
}
} catch (IOException e) {
e.printStackTrace();
} finally {
close();
}
}
// inner class ServerThread
class ServerThread extends Thread {
private Socket socket;
private BufferedReader in;
private PrintWriter out;
public ServerThread(Socket socket) throws IOException {
this.socket = socket;
in = new BufferedReader(new InputStreamReader(socket.getInputStream(), "UTF-8"));
out = new PrintWriter(socket.getOutputStream(), true);
start();
out.println("connect");
}
public void run() {
// Communicate with client until "bye" received.
try {
while (true) {
String line = in.readLine();
if ("bye".equalsIgnoreCase(line)) {
break;
}
System.out.println("Received message: " + line);
String msg = "\"" + line + "\" has been accepted by server";
out.println(msg);
out.flush();
}
out.close();
in.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) throws IOException {
new Server(10008);
}
}
Client.java
package com.simonftxy.core;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
public class Client {
private Socket socket;
private BufferedReader reader;
private PrintWriter writer;
public Client(int serverPort) {
try {
socket = new Socket("127.0.0.1", 10008);
reader = new BufferedReader(new InputStreamReader(socket.getInputStream(), "UTF-8"));
writer = new PrintWriter(socket.getOutputStream());
// Communicate with server until "bye" input.
while (true) {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String msg = in.readLine();
writer.println(msg);
writer.flush();
if ("bye".equalsIgnoreCase(msg)) {
break;
}
String received = reader.readLine();
System.out.println(received);
}
writer.close();
reader.close();
socket.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
new Client(10008);
}
}
分享到:
相关推荐
JAVA Socket教程 Java网络编程之传输控制协议 Socket套接字—Java套接字编程
java socket教程java socket教程java socket教程
java socket client 断线重连的简单实现 有什么意见可以提哦
java socket使用加密协议传输对象
Java Socket 聊天通信演示代码 Java Socket 聊天通信演示代码
Java Socket 操作 Demo import java.awt.Color; import java.awt.Dimension; import java.awt.Point; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.io.BufferedReader; import ...
java socket处理硬件传过来的16进制数据的工具类,包含大小端转换、byte[]数组转换为16进制的字符串、byte[]转ByteBuffer、16进制字符串转换为byte数组等
java socket 学习资料java socket 学习资料java socket 学习资料java socket 学习资料java socket 学习资料
java socket源码解析 java socket源码解析 java socket源码解析 java socket源码解析
java socket USB和 串口通讯,使用java程序与硬件通讯的三种方式。
java socket nginx tcp转发 用户真实IP测试,文章请看我的博客
SpringMVC的Socket实现+Java Tomcat websocket实现+Java Socket通信实现 +Java UDP通信实现。websocket_study.rar 为springMVC版本的socket实现 websocket02.rar 里面包含tomcat的websocket实现+java socket双向通信...
Java Socket编程.pdf Java Socket编程.pdf Java Socket编程.pdf
Java Socket编程 PC端程序 用来传输文件 包括服务器、客户端
Java Socket传输图片源代码;短小精悍,适合初学者学习参考使用
java socket 聊天系统 java传输文件 多线程聊天系统
基于Java socket的聊天室还带有窗口抖动功能
Java Socket 实现SMTP邮件发送,支持SSL/TSL
Java Socket网络编程.pdf 学习资料 复习资料 教学资源
java Socket 编程配套源码