网络编程:Tcp和Udp

一、             TCP编程:

ServerSocket用于服务器端,Socket用于客户端。

1、一个简单的示例向客户端发送内容:

import java.io.OutputStream;

import java.io.PrintStream;

import java.net.*;

public class TcpDemo1 {

   public static void main(String[] args) throws Exception{

     ServerSocket server=new ServerSocket(8888);//在8888端口上开启服务

     Socket client=null;

     System.out.println("等待连接...");

     client=server.accept();//等待客户端连接

     OutputStream out=client.getOutputStream();//得到客户端输出流

     PrintStream pout=new PrintStream(out);

     pout.print("hello world");//向客户端输出内容

     pout.close();

     out.close();

     client.close();

     server.close();

     System.out.println("信息已发送!");

   }

}

2、读取客户端输入的内容:

import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.net.*;

public class TcpDemo2 {

   public static void main(String[] args) throws Exception{

     ServerSocket server=new ServerSocket(8888);//在8888端口上开启服务

     Socket client=null;

     System.out.println("等待连接...");

     client=server.accept();//等待客户端连接

     BufferedReader buf=new BufferedReader(

          new InputStreamReader(client.getInputStream()));//得到客户端输入流

     char[] cs=new char[1024];

     int len=buf.read(cs);    

     System.out.println(new String(cs,0,len));

     buf.close();

     client.close();

     server.close();

     System.out.println("信息已发送!");

   }

}

二、UDP编程:

UDP主要使用以下两个类:

数据报内容:DatagramPacket

发送和接受内容:DatagramSocket

先运行客户端,在运行服务器端。

客户端接收数据代码:

import java.net.DatagramPacket;

import java.net.DatagramSocket;

public class TcpClient {

   public static void main(String[] args) throws Exception {

     DatagramSocket socket=new DatagramSocket(3000);

     DatagramPacket pack=new DatagramPacket(new byte[1024],1024);

     socket.receive(pack);

     System.out.println(new String(pack.getData()));

   }

}

服务器端发送数据代码:

package org.demo;

import java.net.DatagramPacket;

import java.net.DatagramSocket;

import java.net.InetAddress;

public class TcpServer {

   public static void main(String[] args) throws Exception {

     DatagramSocket socket=new DatagramSocket(9000);

     String str="hello world";

     DatagramPacket pack=new DatagramPacket(str.getBytes(),

           0,str.length(),InetAddress.getLocalHost(),3000);

     socket.send(pack);

   }

}

原文地址:https://www.cnblogs.com/itfenqing/p/4429540.html