[Java基础笔记]服务器/客户端交互部分

UDP简介

服务器端

//建立连接,监听端口
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();
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值