网络编程
来源:互联网 发布:淘宝商城女装新款夏装连衣裙 编辑:程序博客网 时间:2024/05/21 20:25
网络编程的基础知识
- 网络协议与TCP/IP
- IP地址和Port(端口号)
- 本地回路的IP地址:127.0.0.1
- 端口号的范围为0---65535之间,0----1023之间的端口数是用于一些知名的网络服务和应用
- UDP与TCP
TCP,传输控制协议,是面向连接的通信协议
UDP,用户数据报协议,是无连接通信协议
Socket
- Socket是网络驱动层提供给应用程序编程的接口和一种机制
- 可以吧Socket比喻成是一个港口码头。应用程序只要把货物放到港口码头上,就算完成了货物的运送。应用程序只需等待货物到达码头后,将货物取走
- Socket在应用程序中创建,通过一种绑定机制与驱动程序建立关系,告诉自己所对应的IP和Port。
Java中的网络编程类
- 位于java.net包中
- DatagramSocket类用于UDP通信
- ServerSocket类用于TCp通信的服务器端
- Socket类用于TCP通信的服务器和客户端
UDP网络程序
- DatagramSocket类
- DatagramPacket类
- InetAddress类
- 最简单得UDP程序
- 用UDP编写网络聊天程序
DatagramSocket类
- 构造函数
- close方法
- send(DatagramPacket p)方法
- receive(DatagramPacket p)方法
DatagramPacket类
如果把DatagramSocket比作创建的港口码头,那么DatagramPacket就是发送和接收数据的集装箱。
- 构造函数
- getInetAddress和getPort方法
- getData和getLength方法
InetAddress类
- InetAddress是计算机IP地址的一个类,而在日常应用中的计算机地址是用“192.168.0.1”、"www.it315.org"等字符串格式来表示的。
- getByName方法
- getHostAddress方法
最简单得UDP程序
- 字符串与字符数组之间的双向转换
- UDP接收程序必须先启动运行,才能接受UDP发送程序发送的数据
- 用start命令来打开新命令行窗口的好处
- 解决发送中文字符串的问题。
package blackhouse.net;import java.io.IOException;import java.net.*;public class UDPSender{public static void main(String[] args) throws Exception{DatagramSocket ds = new DatagramSocket();// 由系统自己分配String strInfo = "hello www.315.org";ds.send(new DatagramPacket(strInfo.getBytes(), strInfo.length(),InetAddress.getByName("192.168.0.10"), 3000));ds.close();}}package blackhouse.net;import java.io.IOException;import java.net.*;public class UDPRecv{public static void main(String[] args) throws Exception{DatagramSocket ds = new DatagramSocket(3000);byte[] buf = new byte[1024];DatagramPacket dp = new DatagramPacket(buf, 1024);ds.receive(dp);String strInfo = new String(dp.getData(), 0, dp.getLength());System.out.println(strInfo + " form "+ dp.getAddress().getHostAddress() + ":" + dp.getPort());ds.close(); }}
如果你传送的是中文字符会接受不到,此时只要将
ds.send(new DatagramPacket(strInfo.getBytes(), strInfo.length(),
InetAddress.getByName("192.168.0.10"), 3000));
的发送长度该为strInfo.getBytes().length即可。
- 网络编程
- 网络编程
- 网络编程
- 网络编程
- 网络编程
- 网络编程
- 网络编程
- 网络编程
- 网络编程
- 网络编程
- 网络编程
- 网络编程
- 网络编程
- 网络编程
- 网络编程
- 网络编程
- 网络编程
- 网络编程
- C# DataSet和DataTable详解
- java文件操作(待完善)
- getchar()getch()scanf()EOF—学习总结
- windowsxp点击关机按钮后很长时间才弹出对话框
- C#中in,out,ref的作用
- 网络编程
- 笔记本电脑上安装 Debian
- python 反向连接后门
- 名词解释:JNDI、JMS、JDBC、EJB、ORM、LDAP(待)
- 对于vs2008下MFC的编译或者说vc6到vs2008的移植性问题
- 多线程程序(待)
- 解决MSSQL 2008不能用IP登录的问题 和 打开可以用SA登录SQL2008的方法
- awakeFromNib
- (复习笔记之JAVA)接口、抽象类