- 浏览: 458754 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (272)
- java基础 (59)
- struts (8)
- spring (8)
- 数据库 (8)
- java 网络编程 (29)
- hibernate (3)
- JavaScript (10)
- 日志管理 (2)
- jsp (4)
- servlet (7)
- xml (4)
- ajax (2)
- web service (4)
- 算法与数据结构 (13)
- java 反射机制 (11)
- java 泛型 (3)
- java I/O (8)
- java 线程 (12)
- JavaEE (6)
- java解惑 (33)
- 工具 (5)
- MyEclipse编程实践 (1)
- OSGI (2)
- 设计模式 (9)
- 正则表达式 (0)
- EJB (3)
- Ubuntu linux (6)
- Android (1)
- web前端 (2)
- 找工作 (1)
- SCA (1)
- maven (1)
- 缓存 (1)
- json (1)
- javamail (1)
- 工作笔记 (2)
最新评论
-
霜花似雪:
博主可以分享一下源码吗?
使用maven构建web项目实例 -
王庆波-行:
很好的demo!
memcache使用实例 -
surpassno:
大写的牛逼
java可视化显示内存使用情况 -
zhulin0504:
怎么访问NetEcho.html页面呀???
applet与servlet的网络通信 -
springdata:
java多线程实例demo源代码下载:http://www.z ...
java多线程例子
网络编程的基本模型就是客户端到服务器端模型,一段必须提供一个固定位置,而另一端只需要知道这个固定的位置,并去建立两者之间的联系
Socket有两种主要操作方式:面向连接和无连接的。面向连接就像一部电话,必须先建立一个连接和一个呼叫,所有的事情到达的顺序和他们出发顺序相同,这就是tcp协议的实现场景
无连接的socket像一个邮件投递,没有什么保证,多个邮件可能在到达时的顺序域出发时的顺序不一样。无连接使用数据报协议,一个数据报包含了所有这次投递的信息,把它想象成信封,有目的地址和要发送的内容,这个模式下的socket不需要连接一个目的地,只是简单的投出数据报,这就是UDP协议的实现场景
下面是一个tcp socket实例程序
客户端:
服务器端;
命令行中执行结果如下:
先启动服务器端没有任何反应
再启动客户端,向服务器端发送请求,并在客户端显示服务器端的响应
服务器端接收请求后
注意:一次请求完成后就结束自己的生命周期,服务器只能处理一次客户端请求,请求结束,连接即释放,看下一篇tcp socket实例(改进)
Socket有两种主要操作方式:面向连接和无连接的。面向连接就像一部电话,必须先建立一个连接和一个呼叫,所有的事情到达的顺序和他们出发顺序相同,这就是tcp协议的实现场景
无连接的socket像一个邮件投递,没有什么保证,多个邮件可能在到达时的顺序域出发时的顺序不一样。无连接使用数据报协议,一个数据报包含了所有这次投递的信息,把它想象成信封,有目的地址和要发送的内容,这个模式下的socket不需要连接一个目的地,只是简单的投出数据报,这就是UDP协议的实现场景
下面是一个tcp socket实例程序
客户端:
package socket; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.Socket; import java.net.UnknownHostException; public class MyClient { public static void main(String[] args) { MyClient c = new MyClient(); try { c.callServer(); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } private void callServer() throws UnknownHostException, IOException { int reqInt = 23; Socket s = new Socket("localhost",8888); //客户端给出IP和端口号 InputStream is = s.getInputStream(); OutputStream os = s.getOutputStream(); DataInputStream dis = new DataInputStream(is); DataOutputStream dos = new DataOutputStream(os); dos.writeInt(reqInt); dos.flush(); int serverInt = dis.readInt(); System.out.println("server answer "+reqInt+"*18 = "+serverInt); dis.close(); dos.close(); } }
服务器端;
package socket; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; public class MyServer { public MyServer(){ } public static void main(String[] args){ MyServer ms = new MyServer(); try { ms.listen(8888); } catch (IOException e) { e.printStackTrace(); } } private void listen(int port) throws IOException { ServerSocket server = new ServerSocket(port); Socket socket = server.accept(); InputStream is = socket.getInputStream(); OutputStream os = socket.getOutputStream(); DataInputStream dis = new DataInputStream(is); DataOutputStream dos = new DataOutputStream(os); int receiveInt = dis.readInt(); //读取客户端请求 System.out.println("The message from client is:"+receiveInt); dos.writeInt(receiveInt*18); //返回client端 dos.flush(); //强制清空缓冲区 dos.close(); dis.close(); is.close(); os.close(); } }
命令行中执行结果如下:
先启动服务器端没有任何反应
再启动客户端,向服务器端发送请求,并在客户端显示服务器端的响应
服务器端接收请求后
注意:一次请求完成后就结束自己的生命周期,服务器只能处理一次客户端请求,请求结束,连接即释放,看下一篇tcp socket实例(改进)
发表评论
-
计算机网络知识
2011-06-01 16:19 761一个http请求的详细过程 我们来看当我们在浏览器输入htt ... -
java udp socket实例
2010-12-06 12:28 7092客户端: package udp; import jav ... -
线程池实现tcp socket
2010-12-01 17:23 2847前面的程序,当一个客户端请求到来时,服务器端就会临时性的创建一 ... -
tcp socket实例(改进)
2010-12-01 16:16 1567上一篇的程序服务器端只能接受一个客户端请求,本篇改为模拟多客户 ... -
telnet协议(转)
2010-10-14 17:17 1111我们知道Telnet服务器软 ... -
whois协议(转)
2010-10-14 14:28 1335当我们预备建立一个Web站点,就必须向域名登记机构申请一个In ... -
java 网络协议(一)Tcp多线程服务器端编程
2010-10-14 11:33 54591,通用服务器代码: package multiThread; ... -
java 网络协议(一)UDP
2010-10-14 09:24 1435UDP测试程序,无需建立连接 package udp; ... -
java 网络协议(一)Tcp
2010-10-14 08:52 51061,简化的服务器端程序 package tcp; imp ... -
java 网络协议(一)InetAddress和Socket(含源码)
2010-10-14 08:24 18571,ip地址和主机名互换 package getip; ... -
ftp协议2(转)
2010-10-12 16:26 938FTP协议工作原理 FTP有 ... -
ftp协议(转)
2010-10-12 16:21 1235ftp协议 FTP协议将使用两 ... -
SMTP服务协议(转)
2010-10-11 15:31 1211SMTP服务概述 鉴于本课程的默认读者群是那些对Inter ... -
利用socket发送接收邮件(转)
2010-10-11 15:18 4154这是在网上摘的,执行接收邮件出现:530 Authentica ... -
jdk6.0从入门到精通-----chapter5网络编程 新I/O(含源码下载)
2010-09-21 10:13 1395本例向用户通过参数指定的主机端口发送一段请求报文,然后读取和打 ... -
jdk6.0从入门到精通-----chapter6--http
2010-09-14 16:32 910用httpconnection进行文件下载,建立一般的jav ... -
java自学===Filter类的应用,验证用户
2010-09-14 14:37 910Filter类 package com; import ... -
java自学===Filter类的应用,网站数量统计
2010-09-14 12:31 1908package filterStatistic; imp ... -
jdk6.0从入门到精通-----chapter5网络编程 udp套接字
2010-09-12 13:46 1129用到的主要类DatagramPacket,DatagramSo ... -
jdk6.0从入门到精通-----chapter5网络编程 tcp连接池
2010-09-10 18:07 957package pool; import java.ne ...
相关推荐
Java socket编程实例.pdf
本篇文章主要介绍了JAVA实现基于Tcp协议的简单Socket通信实例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
一个Socket实例代表了TCP连接的一个客户端,而一个ServerSocket实例代表了TCP连接的一个服务器端,一般在TCP Socket编程中,客户端有多个,而服务器端只有一个,客户端TCP向服务器端TCP发送连接请求,服务器端的...
java建立TCP长链接,再加上心跳机制,下载后可以直接运行,包括server和client
自己写的Java的socket长连接实例 已测试
java socket长连接客户端服务端(标准实例),准确无误,流行结构。
入门级TCP实例,使用socket,特别适合Java新手入门使用
用JAVA实现的TCP通信
java maven 聚合项目 分模块实例; java socket 服务端与客户端,服务端主动发指令,客户端发送心跳包 实例demo。
主要讲解Java Socket编程中TCP的基本使用,希望能给大家做一个参考。
Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...
主要介绍了Java基于Tcp协议的socket编程实例,较为详细的分析了socket编程客户端与服务器端的具体实现步骤与使用技巧,具有一定的参考借鉴价值,需要的朋友可以参考下
主要讲解Java Socket编程中TCP服务端线程池的实例,希望能给大家做一个参考。
主要介绍了Java实现Socket的TCP传输,实例分析了java通过socket实现TCP传输的相关技巧,需要的朋友可以参考下
Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...
Java tcp通讯,运用多线程,一个服务端与多个客户端进行交互
用java编写的基于UDP和TCP两种协议编写的Socket(网络编程)案列
1、供java socket编程的初学者学习使用,严禁用作作业抄袭和商业用途。若转载源代码,请注明原作者以及作者的博客地址。 2、TCPChatRoomServer(服务器端),TCPChatRoomClient(客户端) 3、开发环境:MyEclipse 6.0...
主要介绍了基于TCP的Java Socket编程实例代码,有需要的朋友可以参考一下
主要讲解Java Socket编程中NIO TCP的实例,希望能给大家做一个参考。