Server.java
package org.sunchao;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
/**
* Socket服务端代码
*
* @author Administrator
*
*/
public class Server {
private static final int PORT = 8888;
private Socket socket;
public static void main(String[] args) {
Server server = new Server();
ConnectThread connect = server.new ConnectThread();
new Thread(connect).start();
}
/**
* 服务端等待连接线程
*
* @author Administrator
*
*/
class ConnectThread implements Runnable {
@Override
public void run() {
try {
System.out.println("Waiting client to connect...");
ServerSocket serverSocket = new ServerSocket(PORT);
socket = serverSocket.accept();
// socket连接之后开始启动接收与发送消息的线程
ReceiveThread receive = new ReceiveThread();
SendThread send = new SendThread();
new Thread(receive).start();
new Thread(send).start();
} catch (Exception e) {
e.printStackTrace();
} finally {
}
}
}
/**
* 服务端接收消息线程
*
* @author Administrator
*
*/
class ReceiveThread implements Runnable {
@Override
public void run() {
try {
String info;
InputStream is = socket.getInputStream();
DataInputStream dis = new DataInputStream(is);
while (true) {
info = dis.readUTF();
System.out.println("Client:" + info);
if (info.equals("bye")) {
break;
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
}
}
}
/**
* 服务端发送消息线程
*
* @author Administrator
*
*/
class SendThread implements Runnable {
@Override
public void run() {
try {
OutputStream os = socket.getOutputStream();
DataOutputStream dos = new DataOutputStream(os);
InputStreamReader isr = new InputStreamReader(System.in);
// 从键盘读入数据
BufferedReader br = new BufferedReader(isr);
String info;
while (true) {
info = br.readLine();
dos.writeUTF(info);
if (info.equals("bye")) {
break;
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
}
}
}
}
Client.java
package org.sunchao;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.Socket;
/**
* Socket客户端代码
*
* @author Administrator
*
*/
public class Client {
private static final String IP = "192.168.0.107";
private static final int PORT = 8888;
private Socket socket;
public static void main(String[] args) {
Client client = new Client();
ConnectThread connect = client.new ConnectThread();
new Thread(connect).start();
}
/**
* 客户端连接服务端线程
*
* @author Administrator
*
*/
class ConnectThread implements Runnable {
@Override
public void run() {
try {
socket = new Socket(IP, PORT);
// socket连接之后开始启动接收与发送消息的线程
ReceiveThread receive = new ReceiveThread();
SendThread send = new SendThread();
new Thread(receive).start();
new Thread(send).start();
} catch (Exception e) {
e.printStackTrace();
} finally {
}
}
}
/**
* 客户端接收消息线程
*
* @author Administrator
*
*/
class ReceiveThread implements Runnable {
@Override
public void run() {
try {
String info;
InputStream is = socket.getInputStream();
DataInputStream dis = new DataInputStream(is);
while (true) {
info = dis.readUTF();
System.out.println("Server:" + info);
if (info.equals("bye")) {
break;
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
}
}
}
/**
* 客户端发送消息线程
*
* @author Administrator
*
*/
class SendThread implements Runnable {
@Override
public void run() {
try {
OutputStream os = socket.getOutputStream();
DataOutputStream dos = new DataOutputStream(os);
InputStreamReader isr = new InputStreamReader(System.in);
// 从键盘读入数据
BufferedReader br = new BufferedReader(isr);
String info;
while (true) {
info = br.readLine();
dos.writeUTF(info);
if (info.equals("bye")) {
break;
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
}
}
}
}
分享到:
相关推荐
c#基于Socket客户端服务端通信聊天源码
Java 基于socket聊天室客户端的代码
一个使用的java socket 客户端和服务端例子,优化了数据传输的中文问题。
socket通信:常见的TCP,UDP协议,常见的网络客户端与服务端间的通信,注释比较详细,通俗易懂。 1.TcpListener(侦听来自 TCP 网络客户端的连接) Start():开始侦听传入的连接请求。类似socket中的listen。 Accept:...
此代码通过Java编程实现了基于Socket的网络通信,通信时有两个界面,分别是服务端、客户端,可发消息,界面上有显示,默认是本机的IP地址,代码可用JCreator直接打开,文件是.java形式。
C# socket客户端服务端例子
java socket长连接客户端服务端(标准实例),准确无误,流行结构。
java socket client 断线重连的简单实现 有什么意见可以提哦
简单tcp socket 客户端 服务端代码实现 附C++代码源码
java socket 客户端与服务端通讯
Java聊天室程序源 2 需求分析 2.1 业务需求 1. 与聊天室成员一起聊天。 2. 可以与聊天室成员私聊...当用户发送聊天信息时,服务端将会收到客户端用Socket传输过来的聊天信息对象,然后将其强制转换为Chat对象,并将
C#socket客户端服务端代码详细见博文
跨平台C++ tcp socket 客户端服务端源码 适用于linux window mac系统
java编写socket服务端和客户端给予cmpp3.0
java 中的socket开发的简单聊天服务器
java基于socket服务端向客户端推送信息,反向消息推送,登录上线提示。java基于socket服务端向客户端推送信息,反向消息推送,登录上线提示。
主要介绍了Java基于socket实现的客户端和服务端通信功能,结合完整实例形式分析了Java使用socket建立客户端与服务器端连接与通信功能,需要的朋友可以参考下
Socket 客户端代码封装、服务端代码封装,让使用Socket更简单,队列处理,带使用实例。
这个软件可以任意设置目标IP和端口实现连接相应的主机服务器,编写语言为java,安装时候需要有相应的java环境运行。