SocketServer
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class SocketServer {
public static void main(String args[]) {
try {
ServerSocket server = null;
try {
server = new ServerSocket(4700);
// 创建一个ServerSocket在端口4700监听客户请求
} catch (Exception e) {
System.out.println("can not listen to:" + e);
// 出错,打印出错信息
}
Socket socket = null;
try {
socket = server.accept();
// 使用accept()阻塞等待客户请求,有客户
// 请求到来则产生一个Socket对象,并继续执行
} catch (Exception e) {
System.out.println("Error." + e);
// 出错,打印出错信息
}
String line;
BufferedReader is = new BufferedReader(new InputStreamReader(
socket.getInputStream()));
// 由Socket对象得到输入流,并构造相应的BufferedReader对象
PrintWriter os = new PrintWriter(socket.getOutputStream());
// 由Socket对象得到输出流,并构造PrintWriter对象
BufferedReader sin = new BufferedReader(new InputStreamReader(
System.in));
// 由系统标准输入设备构造BufferedReader对象
System.out.println("Client:" + is.readLine());
// 在标准输出上打印从客户端读入的字符串
line = sin.readLine();
// 从标准输入读入一字符串
while (!line.equals("bye")) {
// 如果该字符串为 "bye",则停止循环
os.println(line);
// 向客户端输出该字符串
os.flush();
// 刷新输出流,使Client马上收到该字符串
System.out.println("Server:" + line);
// 在系统标准输出上打印读入的字符串
System.out.println("Client:" + is.readLine());
// 从Client读入一字符串,并打印到标准输出上
line = sin.readLine();
// 从系统标准输入读入一字符串
} // 继续循环
os.close(); // 关闭Socket输出流
is.close(); // 关闭Socket输入流
socket.close(); // 关闭Socket
server.close(); // 关闭ServerSocket
} catch (Exception e) {
System.out.println("Error." + e);
// 出错,打印出错信息
}
}
}
SocketClient
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
public class SocketClient {
/**
* @param args
*/
public static void main(String[] args) {
try {
Socket socket = new Socket("127.0.0.1", 4700);
// 向本机的5222端口发出客户请求
BufferedReader sin = new BufferedReader(new InputStreamReader(System.in));
// 由系统标准输入设备构造BufferedReader对象
PrintWriter os = new PrintWriter(socket.getOutputStream());
// 由Socket对象得到输出流,并构造PrintWriter对象
BufferedReader is = new BufferedReader(new InputStreamReader(
socket.getInputStream()));
// 由Socket对象得到输入流,并构造相应的BufferedReader对象
String readline;
readline = sin.readLine(); // 从系统标准输入读入一字符串
while (!readline.equals("bye")) {
// 若从标准输入读入的字符串为 "bye"则停止循环
os.println(readline);
// 将从系统标准输入读入的字符串输出到Server
os.flush();
// 刷新输出流,使Server马上收到该字符串
System.out.println("Client:" + readline);
// 在系统标准输出上打印读入的字符串
System.out.println("Server:" + is.readLine());
// 从Server读入一字符串,并打印到标准输出上
readline = sin.readLine(); // 从系统标准输入读入一字符串
} // 继续循环
os.close(); // 关闭Socket输出流
is.close(); // 关闭Socket输入流
socket.close(); // 关闭Socket
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
分享到:
相关推荐
Socket Chat是一款基于.Net Socket技术构建的在线聊天室应用。Socket技术是网络编程中的基础部分,它允许应用程序通过网络发送和接收数据,实现客户端与服务器之间的通信。在本项目中,Socket Chat利用了ASP.Net框架...
综上所述,"winform socket chat server"是一个结合了Winform GUI和Socket网络编程技术的项目,它实现了客户端和服务器之间的实时通信,为用户提供了一个直观的交互界面,使得多人聊天功能得以实现。在实际开发中,...
【标题】:“Socket Chat” 【描述】:“这是一个利用C#编程语言实现的基于Socket技术的聊天程序。Socket在计算机网络中扮演着通信桥梁的角色,它允许两个或多个应用程序通过网络进行数据交换,实现客户端与服务器...
本文将深入探讨“android socket chat”这个项目,它演示了如何使用Socket在Android客户端和C#服务器端之间建立通信连接。 首先,让我们理解Socket的概念。Socket是网络编程中的一个接口,它允许两个运行在不同机器...
基于java socket的聊天室(有界面),如果你有一台VPS,或者电脑配置了IP地址映射,还可以实现即时在线聊天 ,已测试
"Socket_Chat_Server_Client"项目就是一个基于Socket实现的简单聊天室,它包含了服务端(server)和客户端(client)两部分。 服务端(Chat-Server): 1. **服务器启动**:服务端首先创建一个Socket对象,然后绑定...
这个名为“socket.io-android-chat”的项目是一个使用Socket.IO在Android平台上构建的聊天应用程序示例。下面将详细介绍这个项目的相关知识点。 1. **Socket.IO**:Socket.IO 提供了WebSocket的增强版,它不仅支持...
**J2ME Socket Chat MIDlet 开源项目详解** 在移动设备技术领域,Java 2 Micro Edition(J2ME)曾是开发嵌入式系统和移动应用的重要平台。本项目名为"J2ME Socket Chat MIDlet [isometric]",是一个开源的聊天应用...
在本文中,我们将深入探讨如何使用Node.js、Express和Socket.io构建一个实时聊天应用程序,正如“socket-chat”项目所示。这个应用将展示如何利用这些技术实现实时通信,特别是对于在线聊天室或协作工具等场景。 ...
linux 下的聊天服务器,包括涉及文档及原理介绍.
在这个“Socket实现局域网Chat”的项目中,开发者Dennis利用Socket来构建一个局域网内的聊天应用,实现了类似QQ的功能。下面我们将详细探讨涉及的知识点。 1. **Socket编程**: Socket是网络通信中的接口,它允许...
【标签】:“socket chat”进一步确认了这个程序的核心功能,即使用Socket技术实现聊天功能。在聊天应用中,通常会有客户端(Client)和服务器端(Server)两部分。客户端用于用户交互,发送和接收消息;服务器端则...
《Delphi Socket Chat:深入解析十六进制源码实现》 在编程领域,网络通信是不可或缺的一部分,而Socket编程则是实现这一目标的核心技术。本文将深入探讨基于Delphi的Socket Chat程序,它不仅实现了基本的点对点...
"socket-chat" 是一个项目名称,它表明我们要讨论的是一个利用网络通信技术构建的聊天应用。这个应用是基于 "Node.js" 构建的,Node.js 是一个使用 JavaScript 运行时环境的后端开发平台,允许开发者使用 JavaScript...
【标题】"Socket Chat:基于Socket和Node.js的聊天应用" 在互联网开发中,实时通信是不可或缺的一部分,而Socket编程正是实现这一目标的关键技术。本项目"socket-chat"旨在通过Socket和Node.js创建一个简单的在线...
python-socket-聊天使用低级套接字库的python 中的超级基本聊天室。 运行 chat_server.py,然后根据需要运行尽可能多的客户端实例。 目前仅适用于在本地主机或同一网络上运行的实例之间。 python chat_server.py ...
本文将围绕“silverlight_socket_chat”这一项目,深入探讨如何使用Silverlight结合Socket技术实现一个聊天室。 首先,我们来看项目的核心——Silverlight。Silverlight是一种插件技术,用于在浏览器中创建富媒体和...
"android_socket_chat"这个项目很可能是关于如何在Android设备上实现一个基于Socket的聊天应用的示例。在这个项目中,开发者可能通过Socket连接实现客户端与服务器之间的实时数据传输,从而达到聊天的目的。 Socket...
我们将围绕标题"socket_chat"以及描述中的内容展开,重点关注异步通信的实现以及客户端和服务器的角色。 首先,`socket`是操作系统提供的接口,允许应用程序通过网络进行通信。在C++中,通常使用`<sys/socket.h>`库...