

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 {
}
}
}
}
分享到:
相关推荐
在本文中,我们将深入探讨Java Socket客户端代码及其在创建基于Socket的聊天室客户端中的应用。 首先,理解Socket的基本概念至关重要。Socket是TCP/IP协议族的一部分,允许两台机器(通常是一个服务器和一个客户端...
Socket编程在IT行业中是网络通信的基础,特别是在C#这样的编程语言中,...以上就是关于"C# Socket客户端服务端封装带使用实例"的知识点,通过理解并实践这些内容,开发者可以更加高效地构建基于C#的网络通信应用。
本文将详细解读“Java Socket长连接客户端服务端(标准实例)”的相关知识点,包括其实现原理、代码解析及应用示例。 #### 一、Socket通信概述 Socket是应用程序与网络之间的桥梁,它提供了网络上两个程序之间双向...
通过分析和学习这个C#基于Socket的聊天源码,你可以深入理解网络编程的核心概念,包括客户端与服务端的交互、数据的序列化与反序列化、线程管理和异常处理等。这对于开发自己的网络应用,尤其是实时通信应用,如聊天...
socket通信:常见的TCP,UDP协议,常见的网络客户端与服务端间的通信,注释比较详细,通俗易懂。 1.TcpListener(侦听来自 TCP 网络客户端的连接) Start():开始侦听传入的连接请求。类似socket中的listen。 Accept:...
在这个"java socket 客户端和服务端例子"中,我们有两个主要组件:服务端(server)和客户端(client),以及可能的服务类(service)用于处理特定的业务逻辑。 首先,让我们详细了解一下Java Socket的工作原理。在...
java socket client 断线重连的简单实现 有什么意见可以提哦
此代码通过Java编程实现了基于Socket的网络通信,通信时有两个界面,分别是服务端、客户端,可发消息,界面上有显示,默认是本机的IP地址,代码可用JCreator直接打开,文件是.java形式。
Java基于socket实现的客户端和服务端通信功能完整实例 在Java中,Socket是实现网络通信的基础,通过Socket可以实现客户端和服务器端之间的通信。本文将详细介绍Java基于Socket实现的客户端和服务端通信功能,包括...
Java 编写基于 CMPP3.0 的 Socket 服务端和客户端是移动通讯领域中常见的技术实践,主要用于实现与移动运营商的短信网关进行数据交互。CMPP(China Mobile Short Message Peer-to-Peer)是中国移动制定的一种短消息...
综上所述,"C# socket客户端服务端局域网聊天 文件分包发送"项目涵盖了网络通信的基础知识,包括Socket编程、TCP连接、文件分包与重组、多线程处理以及异常处理等多个方面。通过这个项目,开发者可以深入理解网络...
Java聊天室程序源 2 需求分析 2.1 业务需求 1. 与聊天室成员一起聊天。 2. 可以与聊天室成员私聊...当用户发送聊天信息时,服务端将会收到客户端用Socket传输过来的聊天信息对象,然后将其强制转换为Chat对象,并将
在本场景中,"socket客户端服务端文件_socket_"是指一个关于如何使用Socket进行文件传输的示例。这个压缩包可能包含了两个关键部分:05-Socket-窗体应用和06-Socket-Client窗体,分别代表服务端和客户端的应用程序,...
跨平台C++ tcp socket 客户端服务端源码 适用于linux window mac系统
Java Socket是Java编程语言中用于网络通信的核心API,它提供了基于TCP/IP协议的低级网络编程接口。在Java中,Socket通常被用来实现客户端-服务器架构,其中服务器监听特定端口上的连接请求,而客户端则向该端口发送...
Java通过socket客户端保持连接服务端实现代码 本文主要介绍了Java通过socket客户端保持连接服务端实现代码的实现方法,通过示例代码详细介绍了客户端如何保持连接服务端的实现过程。该实现代码对大家的学习或者工作...
本文将详细解析标题和描述中提到的"C# Socket客户端服务端封装,支持多连接处理,Tasks多线程,队列处理,大数据拆分包处理"的相关知识点。 首先,Socket在C#中是.NET Framework提供的一个类库,它允许开发者构建...
1. **Java基础**:整个系统基于Java语言开发,利用Java的强大功能和跨平台特性。Java的面向对象特性使得代码结构清晰,易于维护。 2. **图形用户界面(GUI)**:客户端可能需要创建一个简单的用户界面,让用户可以...
**SuperSocket客户端+服务端完整Demo** `SuperSocket` 是一个轻量级、高度可扩展的C#开发的网络通信框架,它简化了基于TCP协议的客户端和服务器应用程序的开发。这个完整Demo提供了从头开始构建一个简单的客户端和...
java 中的socket开发的简单聊天服务器