- 浏览: 1592240 次
- 来自: 上海
文章分类
- 全部博客 (374)
- Java (101)
- Struts (54)
- Oracle (30)
- JavaScript (16)
- Spring (27)
- Hibernate (16)
- MyEclipse (3)
- JSF (1)
- FreeMarker (2)
- SiteMesh (2)
- JfreeChart (2)
- Ibatis (2)
- JSP (12)
- MyBatis (4)
- SWFupload (1)
- EJB (4)
- Jboss (4)
- WebService (2)
- Linux (16)
- Android (2)
- XML (6)
- Java 网络编程 (13)
- AXIS2 (1)
- FTP (1)
- Jswing (1)
- Socket (3)
- 杂文选集 (6)
- solr (2)
- PS (1)
- Tomcat (7)
- JDBC (9)
- Highcharts (1)
- maven (1)
- Nodejs (0)
- navicat (2)
- Exception (5)
- eclipse (3)
- jQuery (1)
- springMVC (4)
- MySQL (11)
- SVN (1)
- Sql Server (1)
- zookeeper (1)
- JVM (1)
- Groovy (2)
- Git (1)
- Nginx (1)
- DynamicReport (1)
- IDEA (2)
- JasperReports (1)
- Postgresql (2)
- Mac (1)
- gradle (1)
- 数据结构算法 (1)
最新评论
-
hpu145:
引用引用
java 千分位的添加和去除 -
被遗忘的下路:
少了个junit-4.8.2的包
SSH2整合完整案例(四十三) -
白天看黑夜:
java过滤emoji字符处理,希望能帮到你http://ww ...
emoji 表情图片解决方法 -
caipeiming:
这个挺好JavaScript实现input输入框控件只允许输入 ...
js 控制文本框只能输入中文、英文、数字等 -
双子树:
东西太好啦受教啊
Struts2 JSP中将list,set ,Map传递到Action然后<s:iterator>遍历(三十五)
Socket 点对面 通信 创建多客户连接的socket通信的方式,是在服务器端创建客户连接请求的监听线程,一旦客户发起请求,则服务器端用户创建和此客户端通信线程的和Socket,服务器把此客户端的通信交给此线程进行处理.同时继续在服务器的指定端口进行监听,来响应其他客户端的请求.
//TextFaceServer.java
package com.itheima.net.socket; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; /** * 点对面 server */ //操作Socket服务器端的类 public class TextFaceServer { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub try { new FaceServer(8080); } catch (Exception e) { System.out.println("服务器端进行端口监听出现异常:"+e.getMessage()); } } } class FaceServer extends ServerSocket{ private int port; //端口号 public FaceServer(int port) throws IOException { super(port); this.port=port; System.out.println("服务器已启动,监听端口为:"+port); System.out.println("正在等待客户端的连接....."); try { while (true) { Socket socketCon=accept(); new ServerThread(socketCon,port); } } catch (Exception e) { System.out.println("没有监听到客户端的信息....."); }finally{ close(); } } } //继承线程类 实现 服务器线程 class ServerThread extends Thread{ private int port; //端口 private Socket socketCon; //获得连接对象 private BufferedReader in; private PrintWriter out; public ServerThread(Socket socketCon,int port) throws Exception { this.port = port; this.socketCon = socketCon; //获取客户端的数据流 in=new BufferedReader(new InputStreamReader(this.socketCon.getInputStream(),"gb2312")); //获取写往客户端的数据输出流,true表示自动刷新 out=new PrintWriter(socketCon.getOutputStream(),true); //向客户端发送连接信息 out.println("服务器端连接成功....."); out.println("输入exit断开与服务器的连接"); start(); //启动线程 } //处理信息的方法 public String infoUpperString(String line){ return line.toUpperCase(); } //线程的run方法 public void run(){ try { boolean done=false; while (!done) { String line=in.readLine(); // 读取客户端的每行信息 if(line==null){ done=true; }else{ System.out.println("客户端传来的内容:"+line); String message=infoUpperString(line); out.println("从服务器端口发送的内容:"+message); if(line.trim().equals("exit")) done=true; } } System.out.println("客户端终止发送信息......"); socketCon.close(); //关闭通信资源 }catch (Exception e) { System.out.println("启动服务器端出现错误:"+e.getMessage()); } } }
//TextPointClient.java
package com.itheima.net.socket; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.InetAddress; import java.net.Socket; /** * 点对面 client * @author Bin * */ public class TextPointClient { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub try { new PointClient("localhost",8080); } catch (Exception e) { System.out.println("测试客户端连接错误:"+e.getMessage()); } } } class PointClient{ //Socket点客户端 private String host; //Ip地址 或者域名 private int port; //端口 public PointClient(String host, int port) { this.host = host; this.port = port; connectionSocket(); } //连接的方法 public void connectionSocket(){ try { Socket socketConn; if(host.equals("localhost") || host.equals("127.0.0.1")){ //创建本地连接 socketConn=new Socket(InetAddress.getLocalHost(),port); }else{ socketConn=new Socket(InetAddress.getByName(host),port); //创建远程连接 } //获得从键盘的输入流 BufferedReader stdin=new BufferedReader(new InputStreamReader(System.in)); //获得服务器内容的数据流 PrintWriter out=new PrintWriter(socketConn.getOutputStream(),true); //获得服务器端发送内容的缓冲流 BufferedReader in=new BufferedReader(new InputStreamReader(socketConn.getInputStream())); System.out.println("服务器信息:"+in.readLine()); //从服务器端获取信息 System.out.println("服务器信息:"+in.readLine()); System.out.print("请输入>"); boolean done=false; while(!done){ String line=stdin.readLine(); //获得从键盘输入的每行字符 out.println(line); //发送到服务器端 if(line.equalsIgnoreCase("exit")) done=true; String info=in.readLine(); System.out.println("服务器信息:"+info); if(!done) System.out.println("请输入>"); } socketConn.close(); } catch (SecurityException e) { System.out.println("连接服务器出现安全问题:"+e.getMessage()); }catch (Exception e) { System.out.println("连接服务器出现I/O错误:"+e.getMessage()); } } }
发表评论
-
POST发送XML数据
2013-10-16 14:09 9984package com.itheima.xml; i ... -
发送 GET 和 POST请求
2013-10-05 11:28 3312/** *@param url 发送请求的url ... -
Java 多线程断点续传 (基于HTTP)
2013-03-14 09:42 8872http://wenku.baidu.com/view/57f ... -
Java 多线程断点续传 (基于HTTP)
2013-03-13 23:13 959http://wenku.baidu.com/view/57f ... -
Socket 点对点 通信
2013-03-13 12:54 4386Socket通常称作为 "套接字",用于描 ... -
Socket 点对点通信
2013-03-12 20:07 935Socket通常称作为 "套接字",用于描 ... -
FTP 上传 下载 登录
2013-03-12 11:20 32251.使用 Serv-U 在本机上创建一个 FTP服务器 h ... -
FTP 登录 下载 上传 文件
2013-03-11 22:43 101.使用 Serv-U 在本机上创建一个 FTP服务器 h ... -
URL 获取网络资源
2013-03-11 09:23 1982URL 获取网络资源 packag ... -
IP地址和域名的获取
2013-03-10 21:44 1446InetAddress 获取 IP地址和域名 packag ... -
Java 抓取网页上的图片
2012-09-23 17:28 12629本文介绍 1.利用正则 匹 ... -
java 下载网络上的图片并保存到本地目录
2012-09-22 02:32 57468import java.io.File; import ... -
java 根据URL获取网页源码
2012-09-21 00:20 11275import java.io.BufferedReader ...
相关推荐
综合这些信息,我们可以了解到这个项目是一个使用Java Swing开发的本地网络聊天软件,具备基本的用户登录功能,利用Oracle数据库存储登录信息,并通过Socket实现点对点和点对面的消息传递。服务器端和客户端的代码...
点对点面对面聊天室是一种基于网络通信技术的实时通讯应用,允许用户之间进行直接的信息交流。在本项目中,开发者使用了C#编程语言来构建这样一个聊天系统,它可能包括客户端和服务器端两部分,实现了基本的文字聊天...
Socket编程是网络编程中的核心技术,它允许两个或多个设备通过网络进行通信。在这个系统中,Socket将作为客户端与服务器之间的桥梁,使得用户能够进行实时的文本、音频、视频交流,以及一些附加功能如点歌、分组管理...
实时视频通信是现代通信技术中的一个重要组成部分,它允许用户通过网络进行面对面的视频交流,极大地增强了远程沟通的效率和体验。在Android平台上实现这一功能,需要结合多种技术和协议,包括SIP(Session ...
聊天室是一种多点通信程序,它实现了多个输入/输出端点之间的多对多通信,类似于一群人面对面地交谈。尽管许多聊天软件都是免费提供的,并且功能也越来越强大,但它们通常需要互联网连接才能使用。因此,开发一款...
接下来,**Socket.IO**是一个实时应用库,它在客户端和服务器之间提供双向通信。它在WebSocket协议之上提供了额外的功能,如心跳检测、重连机制和消息广播。在聊天室中,Socket.IO负责将用户的输入实时传输到其他...
本资源提供了在VB环境下使用Winsock进行简单编程的实例,特别关注了多客户端的点对点和点对面通讯模式。 首先,让我们了解Winsock控件的基本结构和属性: 1. **控件添加**:在VB中,你可以通过控件工具箱将Winsock...
Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它允许开发者在服务器端使用JavaScript编写代码,而socket.io则是一个实时应用框架,它为实时双向通信提供了简单易用的API。 在Node.js中,我们可以使用...
4. **Socket通信**:在某些情况下,Flash还可能利用Socket进行双向通信,实现更灵活的数据交换,比如私聊、群聊、发送文件等高级功能。 5. **服务器架构**:视频聊天程序通常需要一个强大的后端来处理大量的并发...
**Socket.IO** 是一个实时应用框架,它提供了双向的实时通信机制。在 parasiteChat 中,Socket.IO 负责在客户端和服务器之间建立持久的连接,实现实时的消息传递。用户一旦发送消息,其他在线的参与者能立即接收到,...
作为一款现代的音乐播放器,它不仅具备基础的播放、暂停、上一曲、下一曲等操作,还增加了创新性的功能,如摇一摇切歌和通过socket实现的面对面传歌,以及个性化的音效设置。 摇一摇切歌是音乐播放器中的一个趣味性...
这个聊天室允许用户通过网络摄像头分享视频,并进行音频通信,提供了类似于现实生活中面对面交谈的体验。 Flex框架包含Adobe Flex SDK,它包含了编译Flex应用所需的编译器、库和工具。开发人员可以使用Flex Builder...
Socket是网络通信的基础,它允许网络中的两个程序之间建立连接并交换数据。Socket编程为开发者提供了一种相对简单的方法来创建客户端和服务器端程序,实现双方之间的通信。在Java语言中,提供了丰富的Socket编程API...
- **套接字编程**:C#中的System.Net.Sockets命名空间提供了Socket类,用于实现基于TCP或UDP的网络通信。在P2P系统中,通常选择TCP协议,因为它能确保数据的可靠传输。 - **监听与连接**:服务器端需创建一个监听...
- Socket.IO可以实现实时双向通信,非常适合于WebRTC的信令传输。 5. 实施步骤: - 创建Node.js项目,安装必要的依赖,如express、socket.io等。 - 设计WebSocket或HTTP信令系统,处理offer、answer和candidate...
以下是对标题和描述中提及的几个关键知识点的详细解释: 2.1 安全问题的产生 电子商务的安全问题主要源于交易环境、交易对象、交易过程的特性。与传统商务相比,电子商务无需面对面交易,而是通过互联网进行,这就...
VB提供了Socket编程接口,可以实现TCP/IP通信,让应用能在局域网内发送和接收数据,实现聊天功能。 3. **办公自动化**:办公自动化是指通过信息技术改进工作流程,提高工作效率。这款聊天软件就是其中一种工具,它...
Java远程视频会议系统是一种利用网络技术实现实时音视频通信的应用,它能够让身处不同地理位置的参与者通过互联网进行面对面的交流。这种系统通常包含多个核心组件,如音视频编码解码、数据传输、多路混音、屏幕共享...
网络对战功能的实现基于网络通信技术,这涉及到TCP/IP协议、socket编程等网络编程基础。开发者可能使用了Qt自带的QNetworkAccessManager和QNetworkReply类来处理网络请求和响应,确保数据的可靠传输。 聊天功能是...