`
jie66989
  • 浏览: 253287 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

Socket chat

    博客分类:
  • java
 
阅读更多
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 Chat是一款基于.Net Socket技术构建的在线聊天室应用。Socket技术是网络编程中的基础部分,它允许应用程序通过网络发送和接收数据,实现客户端与服务器之间的通信。在本项目中,Socket Chat利用了ASP.Net框架...

    winform socket chat server

    综上所述,"winform socket chat server"是一个结合了Winform GUI和Socket网络编程技术的项目,它实现了客户端和服务器之间的实时通信,为用户提供了一个直观的交互界面,使得多人聊天功能得以实现。在实际开发中,...

    socket chat

    【标题】:“Socket Chat” 【描述】:“这是一个利用C#编程语言实现的基于Socket技术的聊天程序。Socket在计算机网络中扮演着通信桥梁的角色,它允许两个或多个应用程序通过网络进行数据交换,实现客户端与服务器...

    android socket chat

    本文将深入探讨“android socket chat”这个项目,它演示了如何使用Socket在Android客户端和C#服务器端之间建立通信连接。 首先,让我们理解Socket的概念。Socket是网络编程中的一个接口,它允许两个运行在不同机器...

    Java_Socket_Chat.zip_java socket chat

    基于java socket的聊天室(有界面),如果你有一台VPS,或者电脑配置了IP地址映射,还可以实现即时在线聊天 ,已测试

    Socket_Chat_Server_Client

    "Socket_Chat_Server_Client"项目就是一个基于Socket实现的简单聊天室,它包含了服务端(server)和客户端(client)两部分。 服务端(Chat-Server): 1. **服务器启动**:服务端首先创建一个Socket对象,然后绑定...

    socket.io-android-chat,一个简单的socket.io和android聊天演示.zip

    这个名为“socket.io-android-chat”的项目是一个使用Socket.IO在Android平台上构建的聊天应用程序示例。下面将详细介绍这个项目的相关知识点。 1. **Socket.IO**:Socket.IO 提供了WebSocket的增强版,它不仅支持...

    J2ME Socket Chat MIDlet [isometric]-开源

    **J2ME Socket Chat MIDlet 开源项目详解** 在移动设备技术领域,Java 2 Micro Edition(J2ME)曾是开发嵌入式系统和移动应用的重要平台。本项目名为"J2ME Socket Chat MIDlet [isometric]",是一个开源的聊天应用...

    socket-chat:使用Node.js,Express和Socket.io进行实时聊天

    在本文中,我们将深入探讨如何使用Node.js、Express和Socket.io构建一个实时聊天应用程序,正如“socket-chat”项目所示。这个应用将展示如何利用这些技术实现实时通信,特别是对于在线聊天室或协作工具等场景。 ...

    SocketChat

    linux 下的聊天服务器,包括涉及文档及原理介绍.

    Socket实现局域网Chat

    在这个“Socket实现局域网Chat”的项目中,开发者Dennis利用Socket来构建一个局域网内的聊天应用,实现了类似QQ的功能。下面我们将详细探讨涉及的知识点。 1. **Socket编程**: Socket是网络通信中的接口,它允许...

    socket chatting

    【标签】:“socket chat”进一步确认了这个程序的核心功能,即使用Socket技术实现聊天功能。在聊天应用中,通常会有客户端(Client)和服务器端(Server)两部分。客户端用于用户交互,发送和接收消息;服务器端则...

    delphiSocketChat(Hex源码)

    《Delphi Socket Chat:深入解析十六进制源码实现》 在编程领域,网络通信是不可或缺的一部分,而Socket编程则是实现这一目标的核心技术。本文将深入探讨基于Delphi的Socket Chat程序,它不仅实现了基本的点对点...

    socket-chat:基于 Node.js 和 Socket.io 的聊天应用

    "socket-chat" 是一个项目名称,它表明我们要讨论的是一个利用网络通信技术构建的聊天应用。这个应用是基于 "Node.js" 构建的,Node.js 是一个使用 JavaScript 运行时环境的后端开发平台,允许开发者使用 JavaScript...

    socket-chat:通过Socket和Nodejs进行聊天

    【标题】"Socket Chat:基于Socket和Node.js的聊天应用" 在互联网开发中,实时通信是不可或缺的一部分,而Socket编程正是实现这一目标的关键技术。本项目"socket-chat"旨在通过Socket和Node.js创建一个简单的在线...

    python-socket-chat:为了解套接字而编写的聊天服务器

    python-socket-聊天使用低级套接字库的python 中的超级基本聊天室。 运行 chat_server.py,然后根据需要运行尽可能多的客户端实例。 目前仅适用于在本地主机或同一网络上运行的实例之间。 python chat_server.py ...

    silverlight_socket_chat

    本文将围绕“silverlight_socket_chat”这一项目,深入探讨如何使用Silverlight结合Socket技术实现一个聊天室。 首先,我们来看项目的核心——Silverlight。Silverlight是一种插件技术,用于在浏览器中创建富媒体和...

    android_socket_chat

    "android_socket_chat"这个项目很可能是关于如何在Android设备上实现一个基于Socket的聊天应用的示例。在这个项目中,开发者可能通过Socket连接实现客户端与服务器之间的实时数据传输,从而达到聊天的目的。 Socket...

    socket_chat

    我们将围绕标题"socket_chat"以及描述中的内容展开,重点关注异步通信的实现以及客户端和服务器的角色。 首先,`socket`是操作系统提供的接口,允许应用程序通过网络进行通信。在C++中,通常使用`<sys/socket.h>`库...

Global site tag (gtag.js) - Google Analytics