读书人

黑马软件工程师-网络编程学习1~11天学

发布时间: 2012-09-14 23:00:48 作者: rapoo

黑马程序员----网络编程学习1~11天学习笔记

---------------------- android培训、java培训、期待与您交流! ----------------------

???小知识点总结:
??????1、?网络编程3要素:IP、端口、传输协议。
??????2、?各应用程序的端口号不能重复,端口号范围:0~65536;0~1024被系统保留(不建议使用)。
??????3、?127.0.0.1是本地回还地址;xx.xx.xx.255是该频段的广播地址(建立UDP协议 socket时,该频段的其它IP地址都可收到)。
??????
??????
???UDP协议和TCP协议的区别:
??????UDP? 1、面向无连接,不需要建立连接,速度快。
??????? 2、将数据封包后发送,每个数据包限制在64K之内
??????? 3、不可靠协议
???????
??????TCP? 1、通过三次握手完成连接
??????? 2、可进行大数据量传输
??????? 3、可靠协议
???????
???????
???IP地址操作类:InetAddress
???UDP协议类:DatagramSocket、DatagramPacket
???TCP协议类:Socket、ServerSocket

?

以下是2个练习,运用udp的socket进行发送信息

?

import java.io.*;import java.net.*;class Send implements Runnable{private DatagramSocket ds;public Send(DatagramSocket ds){this.ds = ds;}public void run(){try{byte data[] = null;BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));String line = null;while((line = bufr.readLine())!= null){if(line.equals("886"))break;data = line.getBytes();DatagramPacket dp = new DatagramPacket(data,data.length,InetAddress.getByName("10.20.52.255"),10000);ds.send(dp);}}catch(Exception e){throw new RuntimeException("FALSE");}}}class Rece implements Runnable{private DatagramSocket ds;public Rece(DatagramSocket ds){this.ds = ds;}public void run(){try{while(true){byte[] bytes = new byte[1024];DatagramPacket dp = new DatagramPacket(bytes,bytes.length);ds.receive(dp);String ip = dp.getAddress().getHostAddress();String data = new String(dp.getData(),0,dp.getLength());System.out.println(ip+"::"+data);}}catch(Exception e){throw new RuntimeException("FALSE");}}}class ChatDemo{public static void main(String args[]) throws Exception{DatagramSocket sendSocket = new DatagramSocket();DatagramSocket receSocket = new DatagramSocket(10000);new Thread(new Send(sendSocket)).start();new Thread(new Rece(receSocket)).start();}}

?
---------------------- android培训、java培训、期待与您交流! ----------------------
详细请查看:http://edu.csdn.net/heima

?

读书人网 >编程

热点推荐