TCP和UDP Socket
1.tcp协议的编程
* 1:客户端。步骤
* 1:创建Socket对象,构造方法里需要指定服务端的ip地址和端口.
* Socket socket = new Socket(服务端的ip地址或者InetAddress对象,服务端的端口);
* 2:如果想要从服务端读取数据,那么就需要获得输入管道:InputStream
* 如果想将数据写到服务端,则需要获得输出管道:OutputStream
* 读取数据: InputStream is = socket.getInputStream();
* 发送数据: OutputStream os = socket.getOutputStream();
* 3:准备数据,用InputStream来读取数据,或者用OutputStream来向服务端写入数据,
* 读数据 : is.read(数据)
* 写数据:os.write(数据)
* 4:关闭流,关闭Socket。
* is.close();
* os.close();
* socket.close();
* 2:服务端:步骤
* 1;创建ServerSocket对象,并且指定监听的端口。
* ServerSocket ss = new ServerSocket(9999);
* 2:调用accept方法,监听是否有客户端连接。如果连接上则分配一个Socket.
* 3:获得Socket的读取管道和输出管道。再进行读取和写入数据。
* 4:将Socket关闭。
* 5:将ServerSocket关闭。
2.TCP的发送和接收
* 发送
// 创建套接字。它会自动到指定ip地址的指定端口。
Socket socket = new Socket("127.0.0.1", 9999);
// 发送数据。
String str = "tcp,我来了";
// 得到输出管道。
OutputStream os = socket.getOutputStream();
os.write(str.getBytes());
os.close();
socket.close();
* 接收
ServerSocket ss = new ServerSocket(9999);
//监听是否有客户端连接到本服务器端。如果有连接,则分配一个Socket。
Socket socket = ss.accept();//阻塞式的方法。
//获得输入管道。
InputStream is = socket.getInputStream();
byte[] b =new byte[1024];
//返回本次读取的字节数量。
int length = is.read(b);
System.out.println(new String(b,0,length));
ss.close();
3.UDP发送和接收
* 发送
InetAddress ia = InetAddress.getLocalHost();//本机地址
Scanner scanner = new Scanner(System.in);
String sendIn = scanner.nextLine();
DatagramSocket socket = new DatagramSocket();
byte[] b = sendIn.getBytes();
DatagramPacket p = new DatagramPacket(b, b.length, ia, 9900);
socket.send(p);
socket.close();
* 接收
DatagramSocket socket = new DatagramSocket(9900);
byte[] b = new byte[1024];
DatagramPacket p = new DatagramPacket(b, b.length);
socket.receive(p);
System.out.println(p.getAddress().getHostAddress()+p.getPort()+(new String(b,0,b.length)));
TCP和UDP Socket的更多相关文章
- HTTP/TCP/IP UDP Socket等区别联系
1.TCP连接 手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接.TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上. ...
- [net]tcp和udp&socket
参考 TCP和UDP连接 关于传输层TCP.UDP协议可能我们平时遇见的会比较多,有人说TCP是安全的,UDP是不安全的,UDP传输比TCP快,那为什么呢,我们先从TCP的连接建立的过程开始分析,然后 ...
- 推荐一些socket工具,TCP、UDP调试、抓包工具 推荐一些socket工具,TCP、UDP调试、抓包工具
还记得我在很久很久以前和大家推荐的Fiddler和Charles debugger么?他们都是HTTP的神器级调试工具,非常非常的好用.好工具能让你事半功倍,基本上,我是属于彻头彻尾的工具控. 假如有 ...
- 推荐一些socket工具,TCP、UDP调试、抓包工具 (转载)
还记得我在很久很久以前和大家推荐的Fiddler和Charles debugger么?他们都是HTTP的神器级调试工具,非常非常的好用.好工具能让你事半功倍,基本上,我是属于彻头彻尾的工具控. 假如有 ...
- 推荐一些socket工具,TCP、UDP调试、抓包工具
还记得我在很久很久以前和大家推荐的Fiddler和Charles debugger么?他们都是HTTP的神器级调试工具,非常非常的好用.好工具能让你事半功倍,基本上,我是属于彻头彻尾的工具控. 假如有 ...
- 基于socket的TCP和UDP编程
一.概述 TCP(传输控制协议)和UDP(用户数据报协议是网络体系结构TCP/IP模型中传输层一层中的两个不同的通信协议. TCP:传输控制协议,一种面向连接的协议,给用户进程提供可靠的全双工的字节流 ...
- (转)基于socket的TCP和UDP编程
一.概述 TCP(传输控制协议)和UDP(用户数据报协议是网络体系结构TCP/IP模型中传输层一层中的两个不同的通信协议. TCP:传输控制协议,一种面向连接的协议,给用户进程提供可靠的全双工的字节流 ...
- 网络编程——基于TCP协议的Socket编程,基于UDP协议的Socket编程
Socket编程 目前较为流行的网络编程模型是客户机/服务器通信模式 客户进程向服务器进程发出要求某种服务的请求,服务器进程响应该请求.如图所示,通常,一个服务器进程会同时为多个客户端进程服务,图中服 ...
- HTTP、TCP、UDP以及SOCKET之间的区别/联系
一.TCP/IP代表传输控制协议/网际协议,指的是一系列协组. 可分为四个层次:数据链路层.网络层.传输层和应用层. 在网络层:有IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议. 在 ...
随机推荐
- ls -alrth 及ls 详解
idcdpi 抓包过程中 用了命令 ls - alrth :命令,所以回头重新学习 ls命令 linux ls和 ll 命令 标签: linuxsocketssolarisbash出版扩展 2 ...
- 备份还原mysql数据库
Windows下cmd命令行中备份还原mysql数据库 先cmd 上cd 到mysql的安装bin目录下,然后再运行下面的命令. 例如:cd C:\Program Files\MySQL\MySQL ...
- HDU 2577 How to Type(dp题)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2577 解题报告:有一个长度在100以内的字符串,并且这个字符串只有大写和小写字母组成,现在要把这些字符 ...
- ssh和mvc理论基础
ssh中mvc到底指的什么 mvcsshhibernatespringstrutsioc在SSH整合的架构中,Spring充当了一个容器的作用,Spring使用IOC和AOP技术接管了Hibernat ...
- 在 OpenGL ES 2.0 上实现视差贴图(Parallax Mapping)
在 OpenGL ES 2.0 上实现视差贴图(Parallax Mapping) 视差贴图 最近一直在研究如何在我的 iPad 2(只支持 OpenGL ES 2.0, 不支持 3.0) 上实现 视 ...
- Android音频播放实例
MediaPlayer: 此类适合播放较大文件,此类文件应该存储在SD卡上,而不是在资源文件里,还有此类每次只能播放一个音频文件. 1.从资源文件中播放 MediaPlayer player = ne ...
- HDU1711
Number Sequence Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- 利用nginx泛域名解析配置二级域名和多域名
利用nginx泛域名解析配置二级域名和多域名 网站的目录结构为 html ├── bbs └── www html为nginx的安装目录下默认的存放源代码的路径. bbs为论坛程序源代码路径 www为 ...
- ios图标和默认图像
Icon.png和Default.png是两个重要的图像文件.Icon.png充当应用程序的图标,这些图标用于在SpringBoard主屏幕上表示应用程序.Default.png(也称"启动 ...
- Linux匿名管道与命名管道
http://blog.chinaunix.net/uid-26000296-id-3408970.html /* * \File * main.c * \Descript * father-proc ...