Socket编程

 

演示tcp传输

 

1.tcp分客户端和服务端

2.客户端对应对象是Socket

服务端对应对象是ServerSocket

 

客户端:

查阅Socket对象,发现该对象建立时,就可以去连接指定主机

因为tcp面向连接,所有建立Socket服务时

就要有服务器端存在,并连接成功形成通路,在该通道上进行数据传输

 

步骤:

1.创建Socket服务,并指定要连接的主机和端口

2.为了发送数据,应该获取socket流中的输出流

3.

 

步骤:

1.建立服务端ServerSocket服务,并监听一个端口

2.获取连接过来的客户端对象

通过ServerSocket的accept方法,没有连接就会等,这个方法是阻塞式的

3.客户端发过来数据,那么客户端使用对应的客户端对象

并获取到该客户端对象的读取流来读取发过来的数据,打印到控制台

4.关闭服务端(可选)

 

客户端java代码

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

public class TcpClient {
	public static void main(String[] args) {
		try {
			Socket socket = new Socket("10.167.222.21", 10086);
			OutputStream out = socket.getOutputStream();
			out.write("shanshanbox".getBytes());
			out.flush();
			socket.close();
		} catch (UnknownHostException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
}

 服务器端java代码

import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class TcpServer {
	public static void main(String[] args) {
		ServerSocket serverSocket;
		try {
			serverSocket = new ServerSocket(10086);
			Socket socket = serverSocket.accept();
			InputStream in = socket.getInputStream();
			byte[] buf = new byte[1024];
			//注意此处的读取buf参数
			int len = in.read(buf);
			System.out.println(len);
			System.out.println(new String(buf, 0, len));
			socket.close();
			serverSocket.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值