黑马程序员技术交流社区

标题: 地址问题(急) [打印本页]

作者: 雨下阳光    时间: 2014-10-2 22:23
标题: 地址问题(急)
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4. import java.net.DatagramPacket;
  5. import java.net.DatagramSocket;
  6. import java.net.InetAddress;
  7. import java.net.SocketException;
  8. import java.net.UnknownHostException;

  9. /**
  10. * UDP传输
  11. * 1、建立UDP的socket服务
  12. * 2、将数据封装成数据包
  13. * 3、用socket服务发送数据包
  14. *  4、关闭socket服务
  15. */
  16. public class UdpDemo {

  17.         public static void main(String[] args) throws IOException {
  18.         //1、建立UDP的socket服务
  19.                 DatagramSocket ds=new DatagramSocket();
  20.        //2、将数据封装成数据包
  21.                 BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in));
  22.                 String line=null;
  23.                 while((line=bufr.readLine())!=null){
  24.                 if(line.equals("over"))
  25.                                  break;
  26.                 byte[] buf=line.getBytes();
  27.                 DatagramPacket dp=new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.1.107"),1000);
  28.                 //3、用socket服务发送数据包
  29.                 ds.send(dp);
  30.                 //4、关闭socket服务
  31.                 ds.close();
  32.                 }
  33.         }

  34. }
复制代码


  1. import java.io.IOException;
  2. import java.io.OutputStream;
  3. import java.net.Socket;
  4. import java.net.UnknownHostException;

  5. public class TcpDemo {

  6.         public static void main(String[] args) throws UnknownHostException, IOException {
  7.                 Socket sk=new Socket("192.168.1.100",10002);
  8.                 OutputStream out=sk.getOutputStream();
  9.                 out.write("TCP演示".getBytes());
  10.           sk.close();
  11.         }

  12. }
复制代码

程序1中DatagramPacket地址参数一定要转成InetAddress,否则出错;而程序2中的Socket地址参数也是要求InetAddress,但是这里不转也没问题啊,为什么?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2