- 浏览: 29888 次
- 性别:
- 来自: 宁波
文章分类
最新评论
-
zpd00001:
大道理,刚毕业的菜鸟们是不懂的- -!!
毕业后五年之内将决定你的一生 人生与励志 -
li_47195:
看完后我沉默很久..所谓“优秀生”?..一篇转载,献给所有和我一样迷茫没有目标的人
Java TCP/IP Socket 编程 笔记(二)—TCP的例子
- 博客分类:
- java
1.InetAddress类和SocketAddress用于识别网络主机
TCP协议客户端和服务器端的套接字为Socket和ServerSocket
UDP协议的客户端和服务器端的套接字为DatagramSocket
2.
类 NetworkInterface表示一个由名称和分配给此接口的 IP 地址列表组成的网络接口,其getNetworkInterfaces()返回此机器上的所有接口。getInetAddresses()是返回一个 Enumeration 并将所有 InetAddress 或 InetAddress 的子集绑定到此网络接口的便捷方法。(注意:一个网络接口可能包含IPv4或IPv6地址)
3.类 InetAddress的getHostAddress()返回 IP 地址字符串(以文本表现形式)。 getAllByName(String host)在给定主机名的情况下,根据系统上配置的名称服务返回其 IP 地址所组成的数组。getHostName()获取此 IP 地址的主机名。getHostAddress() 返回 IP 地址字符串(以文本表现形式)。
4.TCP套接字
服务器端ServerSocket实例监听TCP链接请求,并为每个请求创建新的Socket实例。也就是说,服务器端要同时处理ServerSocket实例和Sockete实例,而客户端只需要使用Socket实例。
TCP客户端:
Java代码 收藏代码
public class TCPEchoClient { public static void main(String [] args) throws UnknownHostException, IOException, InterruptedException { if(args.length<2||args.length>3){ throw new IllegalArgumentException("Parameter(s):<Server> <Word> [<Port>]"); } String server=args[0]; byte [] data=args[1].getBytes(); int servPort=(args.length==3)?Integer.parseInt(args[2]):7; //1.创建一个Socket实例:构造函数向指定的远程主机和端口建立一个TCP连接 Socket socket=new Socket(server,servPort); System.out.println("Connected to server... sending echo string"); /** *2. 通过套接字的输入输出流进行通信:一个Socket连接实例包括一个InputStream和一个OutputStream,它们的用法同于其他Java输入输出流。 */ InputStream in=socket.getInputStream(); OutputStream out=socket.getOutputStream(); out.write(data); int totalBytesRcvd=0; int bytesRcvd; while(totalBytesRcvd<data.length){ if((bytesRcvd=in.read(data, totalBytesRcvd, data.length-totalBytesRcvd))==-1){ throw new SocketException("Connection closed prematurely"); } totalBytesRcvd+=bytesRcvd; } System.out.println("Receved: "+new String(data)); //3.使用Socet类的close()方法关闭连接 socket.close(); } }
TCP服务器端代码:
Java代码 收藏代码
public class TCPEchoServer { private static final int BUFSIZE=32; public static void main(String [] args) throws IOException, InterruptedException{ if(args.length!=1){ throw new IllegalArgumentException("Parameter(s):<Port>"); } int servPort=Integer.parseInt(args[0]); //1.创建一个ServerSocket实例并制定本地端口。此套接字的功能是侦听该制定端口收到的连接。 ServerSocket servSock=new ServerSocket(servPort); int recvMsgSize; byte [] receiveBuf=new byte[BUFSIZE]; //2.重复执行 while(true){ //a.调用ServerSocket的accept()方法以获取下一个客户端连接。 //基于新建立的客户端连接,创建一个Socket实例,并由accept()方法返回 Socket clntSock=servSock.accept(); SocketAddress clientAddress=clntSock.getRemoteSocketAddress(); System.out.println("Handling client at "+clientAddress); //b,使用所返回的Socket实例的InputStream和OutputStream与客户端进行通信 InputStream in=clntSock.getInputStream(); OutputStream out=clntSock.getOutputStream(); while((recvMsgSize=in.read(receiveBuf))!=-1){ out.write(receiveBuf, 0, recvMsgSize); } //c,通信完成后,使用Socket的close()方法关闭该客户端套接字链接 clntSock.close(); } } }
发表评论
-
【转】PC安卓模拟器PANIC: Could not open:C:\Documents and Settings\Administrator\.android
2013-03-13 23:43 749在初次运行Android程序的 ... -
再谈重入锁--ReentrantLock
2012-12-26 20:50 362重入锁(ReentrantLock)是一种递归无阻塞的同步机制 ... -
Spring 设置支态定时任务
2012-11-27 12:27 616什么是动态定时任务:是由客户制定生成的,服务端只知道 ... -
Java TCP/IP Socket 编程 笔记(四)—发送和接收数据
2012-10-29 20:17 18651.TCP/IP协议要求信息必须在块(chunk)中发送和接收 ... -
Java TCP/IP Socket 编程 笔记(三)—UDP的例子
2012-10-29 19:53 8781.UDP套接字与TCP套接字 ... -
Java TCP/IP Socket 编程 笔记(一)—基本概念
2012-10-29 19:42 797一些概念: 通信信道(communication c ... -
java并发编程不得不知道的几件事(转载)
2012-10-29 19:31 617多线程编 ... -
Web.XML 配置详解
2012-09-07 11:56 552每一个站的WEB-INF下都有一个web.xml的设定文件, ... -
java 多线程编程需要注意的23条
2012-08-13 15:56 5501.多线程中有主内存和 ... -
感受Java中的多线程设计
2012-08-13 15:49 628我就不说最初那个单核CPU时代了,我们从多进程编程开始讲。 ... -
排序算法(JAVA)(二)归并排序,堆排序,桶式排序,基数排序
2012-07-11 09:05 516六 归并排序 算法思想是每次把待排序列分成两部分,分别对这两部 ... -
排序算法(JAVA)(一)插入排序,冒泡排序,选择排序,Shell,快速排序
2012-07-11 08:59 697为了便于管理,先引入个基础类: package algor ... -
理解ThreadLocal
2012-04-28 16:05 0ThreadLocal是什么 早在JDK ... -
Java反射机制
2011-12-31 13:16 638http://www.cnblogs.com/Quincy/ ... -
Java5.0多线程编程
2011-11-22 16:00 680[size=large] Lock接口 ReentrantL ... -
Java Map遍历的方法
2011-11-09 19:41 808第一种:利用entryset遍历 Map map = ne ... -
Java常见异常汇总
2011-11-09 19:27 633转自于: http://www.javaask.com/jav ... -
java io/流
2011-11-09 19:20 453[转]JAVA IO流 http://www.blogjava ... -
Java:使用synchronized和Lock对象获取对象锁
2011-11-07 12:43 516原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 ... -
Java线程:创建与启动
2011-10-31 13:50 567一、定义线程 1、扩展 ...
相关推荐
教你如何建立Linux系统socket通信程序,并且附带一份linux下很多函数的使用笔记....
VC学习笔记 基于TCP的socket编程
网络通信协议,网络通信基础知识,socket网络编程的一些基础知识,Socket网络编程学习笔记,网络编程总结,2011-学习资料大全:java_socket编程,学习网络编程的十个步骤,socket编程入门(经典版),Unix_网络编程...
《TCP/IP网络编程》学习笔记 :carp_streamer: 此仓库是我的《TCP/IP网络编程》学习笔记及具体代码实现,代码部分请参考本仓库对应章节文件夹下的代码。如果本笔记的内容对你有用,请点击一个 star ,转载请注明出处...
SocketTool V4.0版本支持JavaScript编程方式,从而增加了灵活性。 JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,广泛用于客户端的脚本...
包括 1.TCP-IP详解卷1:协议 中文版PDF...2.高级TCP/IP编程 中文版PDF 3.TCPIP Sockets in Java 2nd 英文版PDF, 4.Advanced JAVA networking英文版PDF 5.中文版Socket Java教程 6.Socket Java学习笔记 7.UDP简单案例
百度地图开发java源码 1 开始网络编程 1.1 理解网络编程和套接字 linux 头文件 #include windows 头文件 #include 基于linux平台的实现 网络编程结束连接请求的套接字创建过程为 1. 调用socket函数创建套接字 int ...
Unix TCP/IP 分层协议以及基于Linux的socket套接字网络编程学习笔记。
该笔记主要介绍的网络编程中涉及的网络计算机的基本概念,第二章及第三章分别对TCP./IP、UDP两种网络编程进行了不同级别的编程解释,适合初次接触网络编程的朋友,通俗易懂,希望对大家有用
计算机网络-实验报告5tcpip socket 高级编程。观看视频来自小破站。
Socket编程:Socket是用于实现网络通信的编程接口,支持基于TCP/IP协议的传输,包括TCP和UDP。在Linux下,使用Socket编程可以实现网络通信,包括客户端和服务器端。 IP地址和端口:IP地址是用于标识网络上的设备的...
使用tcp通讯, 1 实现连接服务器 2 收发数据并显示
网络协议栈的实现基本采用TCP/IP的四层架构(链路、网络、传输、应用)。不过在实际学习中通常讲到的是5层架构(物理、链路、网络、传输、应用)。 BSD风格 BSD风格就是通常说的 socket、bind、connect、listen、...
自学Linux网络编程关于socket的编写,包括 server.c 和 client.c 的编写;很详细的介绍了网络套接字socket的C/S模型TCP协议的服务器端和客户端的程序函数以及编写过程;重点介绍多路I/O转接服务器的实现,包括select...
在TCP/IP协议族中,Socket并不是协议,而是一个编程接口。 TCP/IP是传输层协议,主要解决数据如何在网络中传输,而Socket则是对TCP/IP的封装和应用。 TCP是网络中的规则,是不能修改的,而Socket则是给程序员使用的...
TCP-IP-Network-Note本仓库是我的《TCP/IP网络编程》学习笔记以及代码实现。笔者目前使用Linux平台,因此本笔记只包括Linux部分。如果本笔记对您有用,别忘了点一个star。转载请注明出处,谢谢。运行环境操作系统: ...
本书内容全面,涵盖了从网络基础知识到远程方法调用(RMI)等各方面的内容,书中章节涉及到TCP和UDP socket、服务器socket、URL和URI、组播以及特殊用途的API(如JavaMail)等等。本书展示了如何使用JSSE编写安全的...
} } }} TCP传输/* * TCP客户端Socket 服务器端 ServiceSocket * 客户端 * 1.建立socket服务.指定要连接的主机i
引言 随着Internet的迅猛发展,网络通信应用程序的开发成为研究热点。Windows环境下进行通讯程序设计的最基本方法是应用...TCP/IP网络环境下的应用程序是通过网络系统编程界面套接字Socket(在Windows操作系统
1.什么是网络编程? 答:网络编程也叫做socket编程即套接字编程,基于遵循socket套接字的规定进行的编程 2.什么是socket?...即基于socket编程就可以达到遵循TCP等协议的要求 3.套接字socket的作用? 答: