- 浏览: 31296 次
- 性别:
- 来自: 宁波
文章分类
最新评论
-
zpd00001:
大道理,刚毕业的菜鸟们是不懂的- -!!
毕业后五年之内将决定你的一生 人生与励志 -
li_47195:
看完后我沉默很久..所谓“优秀生”?..一篇转载,献给所有和我一样迷茫没有目标的人
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 816在初次运行Android程序的 ... -
再谈重入锁--ReentrantLock
2012-12-26 20:50 402重入锁(ReentrantLock)是一种递归无阻塞的同步机制 ... -
Spring 设置支态定时任务
2012-11-27 12:27 649什么是动态定时任务:是由客户制定生成的,服务端只知道 ... -
Java TCP/IP Socket 编程 笔记(四)—发送和接收数据
2012-10-29 20:17 19201.TCP/IP协议要求信息必须在块(chunk)中发送和接收 ... -
Java TCP/IP Socket 编程 笔记(三)—UDP的例子
2012-10-29 19:53 9101.UDP套接字与TCP套接字 ... -
Java TCP/IP Socket 编程 笔记(一)—基本概念
2012-10-29 19:42 856一些概念: 通信信道(communication c ... -
java并发编程不得不知道的几件事(转载)
2012-10-29 19:31 646多线程编 ... -
Web.XML 配置详解
2012-09-07 11:56 578每一个站的WEB-INF下都有一个web.xml的设定文件, ... -
java 多线程编程需要注意的23条
2012-08-13 15:56 5741.多线程中有主内存和 ... -
感受Java中的多线程设计
2012-08-13 15:49 655我就不说最初那个单核CPU时代了,我们从多进程编程开始讲。 ... -
排序算法(JAVA)(二)归并排序,堆排序,桶式排序,基数排序
2012-07-11 09:05 544六 归并排序 算法思想是每次把待排序列分成两部分,分别对这两部 ... -
排序算法(JAVA)(一)插入排序,冒泡排序,选择排序,Shell,快速排序
2012-07-11 08:59 724为了便于管理,先引入个基础类: package algor ... -
理解ThreadLocal
2012-04-28 16:05 0ThreadLocal是什么 早在JDK ... -
Java反射机制
2011-12-31 13:16 668http://www.cnblogs.com/Quincy/ ... -
Java5.0多线程编程
2011-11-22 16:00 706[size=large] Lock接口 ReentrantL ... -
Java Map遍历的方法
2011-11-09 19:41 833第一种:利用entryset遍历 Map map = ne ... -
Java常见异常汇总
2011-11-09 19:27 661转自于: http://www.javaask.com/jav ... -
java io/流
2011-11-09 19:20 481[转]JAVA IO流 http://www.blogjava ... -
Java:使用synchronized和Lock对象获取对象锁
2011-11-07 12:43 545原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 ... -
Java线程:创建与启动
2011-10-31 13:50 598一、定义线程 1、扩展 ...
相关推荐
在Linux中,进行TCP/IP编程主要涉及套接字(socket)接口,这是操作系统为应用程序提供的一组API。创建一个套接字,你可以使用`socket()`函数,指定协议族(如AF_INET代表IPv4)和套接字类型(如SOCK_STREAM代表TCP...
- **应用编程接口(API)**:提供了与网络通信相关的编程接口,如Socket API,它是TCP/IP网络编程的基础。 #### 五、数据链路层 数据链路层是TCP/IP模型中的最低层之一,主要功能包括: - 为IP模块发送和接收IP...
此外,`代码中国.txt`可能包含了一些与TCP/IP编程相关的示例代码,如创建socket连接或解析IP数据包的代码。`代码中国.url`可能是一个链接,指向更多关于TCP/IP编程的资源。至于`ScanMail`,这可能是某种网络安全工具...
应用编程接口(API)如socket和TLI,提供了编程人员与TCP/IP协议交互的接口。socket接口在Berkeley操作系统中广泛使用,对网络发展产生了深远影响。 数据链路层的主要任务是为IP、ARP和RARP提供服务,负责将数据...
《TCP/IP网络编程》学习笔记 :carp_streamer: 此仓库是我的《TCP/IP网络编程》学习笔记及具体代码实现,代码部分请参考本仓库对应章节文件夹下的代码。如果本笔记的内容对你有用,请点击一个 star ,转载请注明出处...
### 基于TCP的Socket编程在VC中的应用与实现 #### 一、知识点概览 在VC(Visual C++)环境下进行网络编程时,基于TCP的socket编程是实现客户端与服务器之间通信的重要方式之一。本文将从初始化、创建socket、绑定...
4. 在安装过程完成后,在Microchip程序组下会出现“TCP/IP Stack with BSD Socket API”项。完整的源代码将被复制到您计算机根驱动盘的`pic32_solutions`目录中。 #### 结论 带有ENC28J60驱动的BSD套接字API的...
总的来说,Linux TCP/IP协议栈笔记是深入理解网络通信、操作系统内核工作原理的宝贵资源,对于提升系统编程和网络运维能力大有裨益。通过学习,不仅可以掌握TCP/IP协议的基本原理,还能了解其在Linux环境下的具体...
为了更便捷地管理和监控机器人的状态,本文档详细介绍了如何利用 TCP/IP 协议通过浏览器来快速访问FANUC R-30iB PLUS 控制柜中的寄存器和注释IO。这种方法大大提升了工作效率,尤其在频繁调整或调试时,可以避免在示...
Socket编程是实现TCP/IP或UDP协议的应用层接口。在Python、Java、C++等编程语言中,都有Socket库供开发者使用。通过Socket,我们可以创建服务器端程序来监听客户端的连接请求,也可以创建客户端程序来发起连接并发送...
通过阅读TCP UDP笔记.doc,深入理解TCP连接与断开过程.pdf中的细节,以及TCP与UDP编程步骤.pdf的实践指导,初学者可以逐步构建起完整的TCP/UDP编程能力。在实际项目中,灵活运用这些知识,可以有效地处理各种网络...
网络通信协议,网络通信基础知识,socket网络编程的一些基础知识,Socket网络编程学习笔记,网络编程总结,2011-学习资料大全:java_socket编程,学习网络编程的十个步骤,socket编程入门(经典版),Unix_网络编程...
UNIX 网络编程读书笔记内容涵盖了 UNIX 网络编程的基本概念、Socket 编程、TCP/IP 协议、网络服务器设计思想、并发服务器设计等多个方面。整体来说,这篇读书笔记对 UNIX 网络编程的知识点进行了系统的总结和概括。 ...
综上所述,Java网络编程在J2EE开发中扮演着核心角色,从底层的TCP/IP协议到高层的Web服务,无一不依赖于网络编程技术。掌握这一领域的知识,不仅能够提升开发者的技术深度,更能助力企业构建出高效、稳定、安全的...
Perl Socket 编程笔记 Perl Socket 编程笔记是 Perl 语言中 Socket 编程的使用方法和示例程序的集合,适合初学者。下面是 Perl Socket 编程的详细说明: 一、使用 Perl Socket API 首先需要载入 Socket 模块,即 ...
TCP/IP 协议是计算机网络中的基础协议,它是互联网的基础架构。TCP/IP 协议族是一个协议的集合,包括 IP 协议、ICMP 协议、TCP 协议、UDP 协议、HTTP 协议、FTP 协议、POP3 协议等等。 TCP/IP 协议族的结构可以分为...
SocketTool V4.0版本支持JavaScript编程方式,从而增加了灵活性。 JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,广泛用于客户端的脚本...
学习Socket编程不仅需要理解基本的TCP/IP概念,还需要熟悉Java的IO流操作。通过实践和不断探索,可以掌握创建高效、稳定网络应用的关键技能。希望这个学习笔记能为你提供有价值的参考,助你在Socket网络编程的道路上...
在本压缩包"LinuxNetworkKernelSource.rar"中,包含的是针对Linux下TCP/IP协议栈的学习笔记,这对于我们理解网络通信的底层原理至关重要。TCP/IP协议栈是互联网通信的基础,由四层模型(在网络层有时被分为两层)...
对于面向连接的 TCP Socket 和无连接的 UDP Socket,其编程步骤有所不同: 1. **TCP Socket 编程步骤**: - **创建 Socket**:使用 `Socket` 构造函数创建一个新的 Socket 实例。 - **绑定 IP 和端口**:使用 `...