//建立连接,监听端口
DatagramSocket ds = new DatagramSocket(port);
//接收客户端发送过来的数据
ds.receive();
//关闭
ds.close();
客户端
//建立连接
DatagramSocket ds = new DatagramSocket();
//打包成packet类型发送
InetAddress ip = InetAddress.getByName(host);
DatagramPacket dp = new DatagramPacket(byte[] b,b.lenth,ip,port);
TCP部分
服务器创建一个ServerSocket调用accept()方法等待客户机连接
客户端程序创建Socket,请求与服务器建立连接
服务器接收客户机的请求,同时创建一个新的Socket与客户建立连接
服务器端步骤
监听端口
获得连接
交换数据
关闭连接
//创建服务器套接字
ServerSocket ss = new ServerSocket(port);
//等待连接
Socket s1 = ss.accept();
//创建交流
InputStream is = ss.getInputStream();
OutputStream os = ss.getOutputStream();
...
//关闭
ss.close();
客户端步骤
建立网络连接
交换数据
关闭网络连接
//建立套接字
Socket s2 = new Socket(ip,port);
...
s2.close();
传递
URLConnection co = url.openConnection();
co.setDoOutput(true);
//输出流
PrintWriter out = new PruntWriter(co.getOutputStream());
out.print(...)
//输入流
Scanner sc = new Scanner(co.getInputStream());
多客户端问题(用多线程解决)
//建立自定义线程
public class ThreadEchoHandler implements Runnable{
public void run(){
try{
InputStream is = inComing,getInputStream();
OutputStream os = inComing.getOutputStream();
...//自定义操作
inComing.Close();
}
catch(IOException e)
{...}
}
}
//进行多线程循环操作
while(true){
ServerSocket s = new ServerSocket(port);
Socket inComing = s.accept();
...
Runnable r = new ThreadEchoHandler(inComing);
Thread t = new Thread(r);
t.start();
}