TCP 服务端和客户端的基本使用

import java.io.IOException;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;

/*
 * TCP:
 * 	需要建立连接通道!
 * 客户端的实现步骤:
 * 1)创建客户端的Socket对象
 * public Socket(String host, int port)
 * 2)获取通道呢内的字节输出流对象
 * public OutputStream getOutputStream()
 * 3)通过输出流对象写数据到服务端
 * 	OutputStream的write(byte[] bytes)
 * 4)释放资源
 * 	释放Socket对象
 * */
public class ClientDemo {
	public static void main(String[] args) throws IOException, IOException {
//		1)创建客户端的Socket对象
		Socket socket=new Socket(InetAddress.getByName("WL"),12345);
//		2)获取通道呢内的字节输出流对象
		//每一个客户端都对应有自己的Socket对象
		OutputStream out=socket.getOutputStream();
//		3)通过输出流对象写数据到服务器端
		out.write("hello".getBytes());
//		4)释放资源
		socket.close();
	}
}
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;

/*TCP服务器端完成的事情:
 * 1)创建服务器端的Socket对象
 * 		ServerSocket(int port)
 * 2)侦听客户端连接
 * 		public Socket accept()throws IOException:阻塞式方法
 * 		服务器没有链接上,一直等待!(网络中具有延迟性)
 * 3)获取通道内字节输入流对象
 * 		Socket
 * 			public InputStream getInputStream()
 * 4)读取客户端通过通道内的流发送数据
 * 5)释放资源
 * 		服务器端的socket
 * */
public class ServerDemo {
	public static void main(String[] args) throws IOException {
//		1)创建服务器端的Socket对象
		ServerSocket ss=new ServerSocket(12345);
//		 2)侦听客户端连接
		Socket socket=ss.accept();
//		3)获取通道内字节输入流对象
		InputStream in=socket.getInputStream();
//		4)读取客户端通过通道内的流发送数据
		//一次读取一个字节数组
		byte[] bytes=new byte[1024];
		int len=in.read(bytes);
		String s=new String(bytes,0,len);
		String ip=ss.getInetAddress().getHostAddress();
		System.out.println(s+ip);
		
	}
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值