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的更多相关文章

  1. HTTP/TCP/IP UDP Socket等区别联系

    1.TCP连接 手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接.TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上. ...

  2. [net]tcp和udp&socket

    参考 TCP和UDP连接 关于传输层TCP.UDP协议可能我们平时遇见的会比较多,有人说TCP是安全的,UDP是不安全的,UDP传输比TCP快,那为什么呢,我们先从TCP的连接建立的过程开始分析,然后 ...

  3. 推荐一些socket工具,TCP、UDP调试、抓包工具 推荐一些socket工具,TCP、UDP调试、抓包工具

    还记得我在很久很久以前和大家推荐的Fiddler和Charles debugger么?他们都是HTTP的神器级调试工具,非常非常的好用.好工具能让你事半功倍,基本上,我是属于彻头彻尾的工具控. 假如有 ...

  4. 推荐一些socket工具,TCP、UDP调试、抓包工具 (转载)

    还记得我在很久很久以前和大家推荐的Fiddler和Charles debugger么?他们都是HTTP的神器级调试工具,非常非常的好用.好工具能让你事半功倍,基本上,我是属于彻头彻尾的工具控. 假如有 ...

  5. 推荐一些socket工具,TCP、UDP调试、抓包工具

    还记得我在很久很久以前和大家推荐的Fiddler和Charles debugger么?他们都是HTTP的神器级调试工具,非常非常的好用.好工具能让你事半功倍,基本上,我是属于彻头彻尾的工具控. 假如有 ...

  6. 基于socket的TCP和UDP编程

    一.概述 TCP(传输控制协议)和UDP(用户数据报协议是网络体系结构TCP/IP模型中传输层一层中的两个不同的通信协议. TCP:传输控制协议,一种面向连接的协议,给用户进程提供可靠的全双工的字节流 ...

  7. (转)基于socket的TCP和UDP编程

    一.概述 TCP(传输控制协议)和UDP(用户数据报协议是网络体系结构TCP/IP模型中传输层一层中的两个不同的通信协议. TCP:传输控制协议,一种面向连接的协议,给用户进程提供可靠的全双工的字节流 ...

  8. 网络编程——基于TCP协议的Socket编程,基于UDP协议的Socket编程

    Socket编程 目前较为流行的网络编程模型是客户机/服务器通信模式 客户进程向服务器进程发出要求某种服务的请求,服务器进程响应该请求.如图所示,通常,一个服务器进程会同时为多个客户端进程服务,图中服 ...

  9. HTTP、TCP、UDP以及SOCKET之间的区别/联系

    一.TCP/IP代表传输控制协议/网际协议,指的是一系列协组. 可分为四个层次:数据链路层.网络层.传输层和应用层. 在网络层:有IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议. 在 ...

随机推荐

  1. html中table的画法及table和div的区别

    最近项目中,根据客户的要求需要在页面上展示各种报表什么的,各种表格的都会出现.这里也将table的画法,做一下总结.办法虽笨但很实用.这也是从高人那里学来的,总之是屡试不爽啊.就以下面的表格为例. 若 ...

  2. MVC利用Routing实现多域名绑定一个站点、二级域名以及二级域名注册Area

    最近有这么个需求:在一个站点上绑定多个域名,每个域名进去后都要进入不同的页面.实现了这个功能以后,对于有多个域名,且有虚拟空间,但是虚拟空间却只匹配有一个站点的用户来说,可以节省很多小钱钱. 很久以前 ...

  3. chown命令

    改变一个文件的所有者和组 1.命令格式: chown [选项]... [所有者][:[组]] 文件... 例子: komiles@iUbuntu:~/study/wordpress$ lltotal ...

  4. 如何在windows中编写R程序包(转载)

    网上有不少R包的编译过程介绍,挑选了一篇比较详细的,做了稍许修改后转载至此,与大家分享 如何在windows中编写R程序包 created by helixcn modified by binaryf ...

  5. The Pilots Brothers' refrigerator(dfs)

    The Pilots Brothers' refrigerator Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 19718 ...

  6. sql 批量更新

    利用update和select进行批量更新 UPDATE Table1 SET categoryId =(SELECT Id FROM Table2 WHERE Table1 .Id=Table2.c ...

  7. java笔记--关于线程通信

    关于线程通信 使用多线程编程的一个重要原因就是线程间通信的代价比较小 --如果朋友您想转载本文章请注明转载地址"http://www.cnblogs.com/XHJT/p/3897773.h ...

  8. C#开发实例 鼠标篇

    鼠标的操作控制: 鼠标是计算机的一个重要组成部分,有很多默认的设置,如双击时间间隔,闪烁频率,移动速度等,本篇使用C#获取这些基本的信息. 1.1获取鼠标信息 ①实例001 获取鼠标双击时间间隔 主要 ...

  9. 第3章 K近邻法

    参考: http://www.cnblogs.com/juefan/p/3807713.html http://blog.csdn.net/v_july_v/article/details/82036 ...

  10. PHP - 获取和设置include_path .

    PHP - 获取和设置include_path 分类:             PHP              2011-02-16 13:19     2818人阅读     评论(1)     ...