- 浏览: 1590454 次
- 来自: 上海
文章分类
- 全部博客 (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通常称作为 "套接字",用于描述IP地址和端口,是一个通信链的句柄.应用程序通过Socket向网络发出请求或者应答网络请求.Socket是简历在网络连接时使用,在连接成功时,应用程序两端都会产生一个Socket实例,操作这个实例,完成所需的会话. 对于同一个网络连接来说,Socket是平等的,并没有差别,不因为在服务器端或在客户端,而产生不同的级别. Socket服务器端需要在某个端口上开启服务器端类型类,java.net.ServerSocket.通过Accept()方法用户产生"阻塞",知道接收到一个连接,并且返回一个客户端的Socket对象实例."阻塞"是使程序运行暂时"停留" 在这个地方,直到一个会话产生,然后程序继续,通常 "阻塞"是有循环产生的 Socket客户端根据服务器端的IP地址和端口号 创建一个Socket对象.连接服务器.服务器端和客户端都持有有个Socket对象,服务器端的Socket从服务器端指向客户端,而客户端的Socket从客户端指向服务器端,就像在服务器和客户端建立了两条单向的管道
//ServerSocket
package com.itheima.net.socket; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; class SocketServer{ //Socket服务器端 private int prot; //端口 public SocketServer(int prot) { this.prot = prot; //这里开始启动监听 start(); } //处理信息 public String infoUpperCase(String line){ return line.toUpperCase(); //将字符串大写 } //启动服务器 public void start(){ try { //根据端口创建服务器端Socket对象 ServerSocket serverSocket=new ServerSocket(prot); System.out.println("服务器端口已启动,监听端口号为:"+prot); System.out.println("正在等客户端的连接......"); //挂起 等待客户的请求 Socket socketAccept= serverSocket.accept(); //读取客户端的数据流 BufferedReader in=new BufferedReader(new InputStreamReader(socketAccept.getInputStream())); //获取写往客户端的输出流,true表示自动刷新 PrintWriter out=new PrintWriter(socketAccept.getOutputStream(),true); out.println("服务器端连接成功...."); out.println("输入exit断开和服务器的连接"); boolean done=false; while(!done){ String line=in.readLine(); //读取客户端的每一行文本 if(line==null){ done=true; }else{ //显示客户端发送的内容 System.out.println("客户端传来的内容:"+line); String message=infoUpperCase(line); //转换信息 out.println("从服务器端口发送的内容:"+message); if(line.trim().equals("exit")) //退出判断 done=true; } } socketAccept.close(); } catch (Exception e) { System.out.println("启动服务器端出项错误:"+e.getMessage()); } } } public class TextSocketServer { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub try { SocketServer server=new SocketServer(8080); //传入端口实例化对象 } catch (Exception e) { System.out.println("测试服务器端监听出错:"+e.getMessage()); } } }
//SocketClient
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; class Client{ private String host; //IP地址或域名 private int prot; //端口号 public Client(String host, int prot) { this.host = host; this.prot = prot; //这里开始连接 connectionSocket(); } //连接的方法 public void connectionSocket(){ try { Socket socketConn; if(host.equals("localhost") || host.equals("127.0.0.1")){ socketConn=new Socket(InetAddress.getLocalHost(),prot); }else{ socketConn=new Socket(InetAddress.getByName(host),prot); } //获得从键盘的输入流 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()); } } } public class TextSocketClient { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub try { new Client("localhost", 8080); } catch (Exception e) { System.out.println("测试客户端连接出错:"+e.getMessage()); } } }
发表评论
-
POST发送XML数据
2013-10-16 14:09 9979package com.itheima.xml; i ... -
发送 GET 和 POST请求
2013-10-05 11:28 3310/** *@param url 发送请求的url ... -
Java 多线程断点续传 (基于HTTP)
2013-03-14 09:42 8867http://wenku.baidu.com/view/57f ... -
Java 多线程断点续传 (基于HTTP)
2013-03-13 23:13 957http://wenku.baidu.com/view/57f ... -
Socket 点对面 通信
2013-03-13 12:53 1586Socket 点对面 通信 创建多客户连接的socket通信 ... -
Socket 点对点通信
2013-03-12 20:07 935Socket通常称作为 "套接字",用于描 ... -
FTP 上传 下载 登录
2013-03-12 11:20 32231.使用 Serv-U 在本机上创建一个 FTP服务器 h ... -
FTP 登录 下载 上传 文件
2013-03-11 22:43 101.使用 Serv-U 在本机上创建一个 FTP服务器 h ... -
URL 获取网络资源
2013-03-11 09:23 1980URL 获取网络资源 packag ... -
IP地址和域名的获取
2013-03-10 21:44 1446InetAddress 获取 IP地址和域名 packag ... -
Java 抓取网页上的图片
2012-09-23 17:28 12626本文介绍 1.利用正则 匹 ... -
java 下载网络上的图片并保存到本地目录
2012-09-22 02:32 57455import java.io.File; import ... -
java 根据URL获取网页源码
2012-09-21 00:20 11275import java.io.BufferedReader ...
相关推荐
Socket,也被称为套接字,是网络编程中的一个重要概念,它是实现点对点通信的基础。...以上就是关于Socket点对点通信的相关知识点,通过理解并熟练运用Socket,开发者可以构建出高效、可靠的网络应用程序。
QQ Socket点对点通信是一种基于Socket编程实现的网络通信方式,类似于QQ的即时通讯功能。在计算机网络中,Socket是应用程序通过编程接口与操作系统网络服务交互的一种方式,它允许两个或多个设备通过网络进行数据...
总结,C#中使用异步Socket实现点对点通信涉及多线程、非阻塞I/O、并发处理和网络协议等复杂概念。理解并熟练掌握这些知识点,对于构建高效、可靠的P2P应用程序至关重要。通过分析提供的源代码和资源,可以更深入地...
点对点通信模型,通常是指网络中的每一个节点都可以既是服务端(SERVER)也是客户端(CLIENT),可以同时接收和发送数据。在P2P网络中,没有中心服务器控制所有的通信,而是所有参与者之间直接进行交互。这样的设计...
对于点对点通信,通常我们会使用TCP协议,因为TCP提供了一种可靠的数据传输方式,能够确保数据的完整性和顺序。 首先,我们需要创建一个QT项目的工程,然后引入QT的网络模块。在.pro文件中添加以下行: ```cpp QT +...
程序功能为: (1) 服务器可以接受任何客户的连接 (2) 客户程序使用命令行参数指定服务器地址 (3) 客户端输入的文本都发送给服务器 (4) 客户使用输入end时停止发送,关闭连接 (5)服务器能同时连接多个...
C# socket winform 同步和异步通信。 只供个人学习。 请不要发布到网上,纯手工制作。 同步:socket通信,客户端是WinCe项目,Windows上也可以运行,需要打开exe.不能在解决方案中调试。 异步:公共通信类 ...
本文详细介绍了如何利用Socket实现网络上的点对点通信,包括Socket的基本概念、创建配置、绑定监听、客户端连接以及数据的发送与接收等多个方面。通过这些步骤,可以有效地在两台计算机之间建立起稳定可靠的通信链路...
以上就是关于"C# Winform socket点对点信息传输mode"的基本介绍。通过理解和实践这些知识点,你可以构建一个功能完备的点对点通信系统。共同学习,不断提升我们的IT技能,是我们在IT领域不断进步的关键。
### Socket 实现点对点文件传输详解 #### 一、引言 随着互联网技术的发展,文件传输成为了一项日常操作。传统的文件传输方式通常依赖于FTP(文件传输协议)等专用协议,这些方法往往需要搭建专门的服务器和客户端...
在Android平台上,Socket是实现点对点文件传输的基础工具,它允许两个设备通过网络进行通信。"Android Socket 点对点文件传输Mode"通常指的是利用Socket编程实现Android设备间的文件共享。在这个过程中,一个设备...
在IT行业中,网络通信是至关重要的一个领域,而基于socket的点对点聊天程序则是实现这一功能的基础。本文将深入探讨这个主题,讲解如何利用TCP协议通过socket接口创建一个简单的客户端-服务器架构的点对点聊天系统。...
在点对点通信中,UDP Socket技术被广泛应用于实时音视频传输、在线游戏等领域,因为它允许数据快速发送而无需建立连接,适合对时延敏感的应用。 在VC++环境中开发UDP Socket程序,我们需要了解以下几个关键概念和...
Java Socket实现的简单点对点聊天软件是一种基于网络通信的C/S(客户端/服务器)架构的应用。在这个系统中,服务器端作为一个中央节点,接收并转发客户端之间的消息,而客户端则负责用户交互,发送和接收聊天内容。...
一个自己的小程序,适合初学者学习TCP/IP与Socket套接字的使用
总的来说,基于Socket的点对点文件传输虽然简单,但它涵盖了网络通信的基础知识,包括TCP/IP协议、Socket编程、文件读写、流处理和错误控制等。理解并实现这样的程序对于深入理解网络编程是非常有帮助的。
通过Node.js和Socket.IO,我们可以轻松地构建实时通信应用,如简单的点对点和点对多聊天室。理解Socket.IO的工作原理和核心特性,以及如何在Node.js环境中集成和使用,对于开发实时互动的应用至关重要。实践过程中,...