- 浏览: 1572389 次
- 来自: 上海
文章分类
- 全部博客 (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 9935package com.itheima.xml; i ... -
发送 GET 和 POST请求
2013-10-05 11:28 3269/** *@param url 发送请求的url ... -
Java 多线程断点续传 (基于HTTP)
2013-03-14 09:42 8828http://wenku.baidu.com/view/57f ... -
Java 多线程断点续传 (基于HTTP)
2013-03-13 23:13 923http://wenku.baidu.com/view/57f ... -
Socket 点对面 通信
2013-03-13 12:53 1544Socket 点对面 通信 创建多客户连接的socket通信 ... -
Socket 点对点通信
2013-03-12 20:07 897Socket通常称作为 "套接字",用于描 ... -
FTP 上传 下载 登录
2013-03-12 11:20 31921.使用 Serv-U 在本机上创建一个 FTP服务器 h ... -
FTP 登录 下载 上传 文件
2013-03-11 22:43 101.使用 Serv-U 在本机上创建一个 FTP服务器 h ... -
URL 获取网络资源
2013-03-11 09:23 1947URL 获取网络资源 packag ... -
IP地址和域名的获取
2013-03-10 21:44 1413InetAddress 获取 IP地址和域名 packag ... -
Java 抓取网页上的图片
2012-09-23 17:28 12589本文介绍 1.利用正则 匹 ... -
java 下载网络上的图片并保存到本地目录
2012-09-22 02:32 57343import java.io.File; import ... -
java 根据URL获取网页源码
2012-09-21 00:20 11243import java.io.BufferedReader ...
相关推荐
socket点对点通信
本代码通过异步套接字实现点对点通信,基本想法是用于多个客户端直接相互通信而不经过服务器。
自己写的一个socket通信实例,点对点,每个点同时是 SERVER和CLIENT,易步处理接收数据.
基于QT的socket点对点编程源码, 适用于局域网 为基本的socket编程,是一家大型IT面试公司的题目 需要的可以下载
程序功能为: (1) 服务器可以接受任何客户的连接 (2) 客户程序使用命令行参数指定服务器地址 (3) 客户端输入的文本都发送给服务器 (4) 客户使用输入end时停止发送,关闭连接 (5)服务器能同时连接多个...
类似QQ界面,代码是从别的地方下载过来的,但是下载过来的不能运行,本人已改好,用模拟器可以运行
C# socket winform 同步和异步通信。 只供个人学习。 请不要发布到网上,纯手工制作。 同步:socket通信,客户端是WinCe项目,Windows上也可以运行,需要打开exe.不能在解决方案中调试。 异步:公共通信类 ...
同步套接字通信 Socket支持下的网上点对点的通信 服务端实现监听连接,客户端实现发送连接请求,建立连接后进行发送和接收数据的功能
System.Sockes命名空间了实现 Berkeley 套接字接口。通过这个类,我们可以实现网络计算机之间的 ...在这里,我们实现一个轻量级的方法来实现点对点的文件传输,这 样就达到了intenet上任何两个计算机的文件共享。
客户端 服务器 socket tcp 点对点 聊天
一个自己的小程序,适合初学者学习TCP/IP与Socket套接字的使用
UDP 通信协议 Socket 基于VC++UDP
使用socket.io node.js实现的一个简单的点对点以及点对多的聊天室
点对点的文件传输,使用socket网络通信
运用MFC CAsyncSocket类设计实现一个简单的C/S模式的点对点通信程序。客户机和服务器程序通过网络交换字符串信息,并在各自窗口的列表中显示已发送的消息内容和接收到的消息内容
使用异步Socket实现点对点通信(C#)
vb.net Socket demo 点对点通讯