- 浏览: 468011 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (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 793一个http请求的详细过程 我们来看当我们在浏览器输入htt ... -
java udp socket实例
2010-12-06 12:28 7121客户端: package udp; import jav ... -
线程池实现tcp socket
2010-12-01 17:23 2880前面的程序,当一个客户端请求到来时,服务器端就会临时性的创建一 ... -
tcp socket实例(改进)
2010-12-01 16:16 1593上一篇的程序服务器端只能接受一个客户端请求,本篇改为模拟多客户 ... -
telnet协议(转)
2010-10-14 17:17 1139我们知道Telnet服务器软 ... -
whois协议(转)
2010-10-14 14:28 1361当我们预备建立一个Web站点,就必须向域名登记机构申请一个In ... -
java 网络协议(一)Tcp多线程服务器端编程
2010-10-14 11:33 54861,通用服务器代码: package multiThread; ... -
java 网络协议(一)UDP
2010-10-14 09:24 1476UDP测试程序,无需建立连接 package udp; ... -
java 网络协议(一)Tcp
2010-10-14 08:52 51371,简化的服务器端程序 package tcp; imp ... -
java 网络协议(一)InetAddress和Socket(含源码)
2010-10-14 08:24 18831,ip地址和主机名互换 package getip; ... -
ftp协议2(转)
2010-10-12 16:26 965FTP协议工作原理 FTP有 ... -
ftp协议(转)
2010-10-12 16:21 1266ftp协议 FTP协议将使用两 ... -
SMTP服务协议(转)
2010-10-11 15:31 1246SMTP服务概述 鉴于本课程的默认读者群是那些对Inter ... -
利用socket发送接收邮件(转)
2010-10-11 15:18 4190这是在网上摘的,执行接收邮件出现:530 Authentica ... -
jdk6.0从入门到精通-----chapter5网络编程 新I/O(含源码下载)
2010-09-21 10:13 1430本例向用户通过参数指定的主机端口发送一段请求报文,然后读取和打 ... -
jdk6.0从入门到精通-----chapter6--http
2010-09-14 16:32 946用httpconnection进行文件下载,建立一般的jav ... -
java自学===Filter类的应用,验证用户
2010-09-14 14:37 940Filter类 package com; import ... -
java自学===Filter类的应用,网站数量统计
2010-09-14 12:31 1940package filterStatistic; imp ... -
jdk6.0从入门到精通-----chapter5网络编程 udp套接字
2010-09-12 13:46 1162用到的主要类DatagramPacket,DatagramSo ... -
jdk6.0从入门到精通-----chapter5网络编程 tcp连接池
2010-09-10 18:07 984package pool; import java.ne ...
相关推荐
一旦接收到客户端的连接请求,服务器就会创建一个新的Socket实例与该客户端通信。 #### 2.3 数据传输 在Java中,通过Socket进行数据传输主要依靠输入流和输出流。客户端和服务器端都可以使用`InputStream`和`...
在这个"javaTCP Socket.zip"项目中,我们可以看到开发者利用Java的Socket API构建了一个服务器(FinalServer)和一个客户端(FinalClient),以实现数据的双向通信。 首先,让我们深入理解TCP(传输控制协议)和...
Java的`java.net.Socket`类和`java.net.ServerSocket`类是进行TCP通信的核心。`ServerSocket`用于服务器端,监听特定端口上的连接请求;而`Socket`则用于客户端,用来建立与服务器的连接。 1. **创建服务器端:** ...
2. 客户端创建Socket实例,指定服务器的IP地址和端口号,通过`connect()`方法发起连接请求。 3. 一旦连接建立,服务器端`accept()`方法返回一个新的Socket对象,客户端和服务器端就可以通过Socket的输入输出流进行...
之后,双方通过这个Socket实例的输入输出流进行数据交换,最后关闭相关资源。 ### 2. 相关API #### 2.1 `ServerSocket` 类 - `ServerSocket(int port, int backlog)`:创建一个服务器套接字,并将其绑定到指定的...
3. **TCP Server**: 在“Socket-TCP-Echo”项目中,服务器端的实现(通常名为Server.java)会创建一个ServerSocket实例,监听指定的端口号。当客户端连接时,它接受连接并创建一个新的Socket对象,通过该Socket与...
Java Socket 实例与 JDBC 实例详解 在 Java 编程领域,Socket 和 JDBC 是两个非常重要的概念,尤其对于初学者和中级开发者来说,理解和掌握它们是提升技能的关键步骤。Socket 提供了网络通信的基础,而 JDBC 则是 ...
3. **建立连接**:客户端使用Socket类的connect()方法向服务器发起连接请求,服务器端通过ServerSocket的accept()方法接收连接请求,形成一个Socket实例,表示客户端和服务器之间的连接已经建立。 4. **数据交换**...
一旦有连接请求,ServerSocket会返回一个新的Socket实例,代表与客户端建立的连接。Socket类则用于创建客户端的通信套接字,它可以主动连接到服务器。 在"Chapter2"中,可能会详细讲解如何创建并使用ServerSocket和...
- 创建Socket实例,指定服务器的IP地址和端口号,这会尝试建立到服务器的连接。 - 获取Socket的输入流和输出流,通常也是InputStreamReader、BufferedReader和PrintWriter。 - 通过输出流向服务器发送数据,通过...
Java Socket 实例是Java网络编程中的重要组成部分,用于实现客户端与服务器之间的通信。在这个实例中,我们关注的是服务器端的多线程应用,这在处理多个并发连接时尤其有用。多线程允许服务器同时处理多个客户端请求...
本Java TCP测试实例是针对那些希望理解和实现TCP通信的开发者设计的,特别是对于使用JCreator IDE的用户,这是一个很好的学习资源。 首先,让我们深入了解一下TCP的基本概念。TCP是一种面向连接的协议,意味着在两...
### Java Socket 编程实例详解 #### 一、引言 在现代软件开发中,网络编程占据了极其重要的地位。无论是互联网应用还是企业级系统,都需要处理不同设备间的通信。Java作为一种广泛使用的编程语言,提供了强大的...
- 参考`JavaTCP Socket.txt`文件,可能包含了一个简单的聊天应用示例代码,包括服务器端的监听、客户端的连接以及数据传输的实现。 总结,Java Socket编程为开发者提供了构建网络通信应用的基础工具,通过TCP套接...
学习这些Java Socket编程实例,有助于理解TCP/IP通信的基本原理,为构建实际的网络应用程序打下坚实的基础。你可以通过调试和修改`SocketTest`代码,进一步探索和实践Socket编程的不同场景,如文件传输、聊天应用等...
// 创建Socket实例,指定服务器的IP地址和端口号 Socket socket = new Socket("localhost", 8080); // 获取Socket的输入/输出流,用于数据交换 OutputStream outputStream = socket.getOutputStream(); ...
"Server.java"文件很可能包含了TCP服务器端的代码,它会创建一个`ServerSocket`实例,指定一个端口号,并通过`accept()`方法等待客户端的连接。当有客户端连接时,服务器端可以创建一个新的`Socket`对象来处理该连接...
总结来说,Java应用中的Socket实例展示了如何利用TCP/IP通信基础和SOAP协议来实现发送短信和接收应答的功能。在实际开发中,这样的技术广泛应用于分布式系统、Web服务和移动通信等领域,为跨平台的数据交换提供了...
在Java中,Socket类位于`java.net`包下,提供了创建和管理TCP连接的方法。 1. **服务器端**:服务器端通常监听特定的IP地址和端口号,等待客户端的连接请求。在Java中,我们使用`ServerSocket`类来创建服务器端。...
一个Socket实例代表了TCP连接的一个客户端,而一个ServerSocket实例代表了TCP连接的一个服务器端,一般在TCP Socket编程中,客户端有多个,而服务器端只有一个,客户端TCP向服务器端TCP发送连接请求,服务器端的...