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. lamp 网站打不开,不显示也不报错,

    原因是该网站的编程员,习惯简写,<? ?>;而服务器版本的php.ini 默认不支持只支持<?php ?>这种格式. 解决方法vim /usr/loacl/php/etc/ph ...

  3. 转15个必须知道的chrome开发者技巧GIF

    在Web开发者中,Google Chrome是使用最广泛的浏览器.六周一次的发布周期和一套强大的不断扩大开发功能,使其成为了web开发者必备的工具.你可能已经熟悉了它的部分功能,如使用console和 ...

  4. 简单聊下Unicode和UTF-8

    今晚听同事分享提到这个,简单总结下. ## Unicode字符集 Unicode的出现是因为ASCII等其他编码码不够用了,比如ASCII是英语为母语的人发明的,只要一个字节8位就能够表示26个英文字 ...

  5. 最近打算体验一下discuz,有不错的结构化数据插件

    提交sitemap是每位站长必做的事情,但是提交到哪里,能不能提交又是另外一回事.国内的话百度是大伙都会盯的蛋糕,BD站长工具也会去注册的,可有些账号sitemap模块一直不能用,或许是等级不够,就像 ...

  6. (源码)自己写的ScrollView里套漂亮的圆角listview(算是漂亮吧。。。)

    找了相关的资料终于写完了: http://blog.csdn.net/jamin0107/article/details/6973845 和 http://emmet1988.iteye.com/bl ...

  7. [Effective JavaScript 笔记]第34条:在原型中存储方法

    js中完全有可能不借助原型进行编程.不用在其原型中定义任何的方法. 创建对象 构造函数法 所有属性和方法都在构造函数中定义 function User(name,pwd){ this.name=nam ...

  8. poj2253 最短路 floyd Frogger

    Frogger Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 28825   Accepted: 9359 Descript ...

  9. POJ 2418

    http://poj.org/problem?id=2418 这是一个二叉树的题目,但我看了下书,还是不是特别理解会用二叉树,所以我就用其他的办法来做,结果一样AC,时间也就1700多ms,比起二叉树 ...

  10. kettle转换JavaScript获取命令行参数

    日常开发中由于很多参数是变化的,需要在部署时才能确定.而写在配置文件里又显得很笨重,因而可以运行时实时指定.那么kettle是怎么获取命令行中的参数的呢? kettle可以通过转换里的JavaScri ...