黑马程序员_网络编程(三)

------- android培训java培训、期待与您交流! ----------

TCP传输

TCP网络传输是通过客户端(Socket类)和服务端(ServerSocket类)之间的通信来实现的。在创建Socket服务时对服务器端进行连接,如果连接成功,服务器端会获得客户端的Socket对象,彼此之间通过网络流进行通信。

首先是客户端向服务端发送数据:

基本步骤为:

1,创建Socket对象,建立服务,并向服务端请求连接

2,连接成功后,可通过Socket对象获取输入/输出流

3,发送数据

import java.net.*;
import java.io.*;

public class TcpClient {

	public static void main(String[] args) throws Exception {
		
		//1,创建客户端Socket
		Socket s = new Socket(InetAddress.getByName("localhost"),8888);
		//2,获取输出流,用于发送数据
		OutputStream out = s.getOutputStream();
		//3,发送数据
		out.write("我是数据".getBytes());
		//4,关闭资源
		s.close();

	}

}

接下来编写服务端,只是为了验证传输是否成功,没有考虑多个客户端连接

基本步骤为:

1,建立ServerSocket服务并监听某一指定的端口

2,调用ServerSocket的accept方法接收请求连接的Socket,这个方法是阻塞式的

3,获取Socket中的输入流

4,读入数据

5,关闭Socket和ServerSocket,当然,一般服务器是不会关闭ServerSocket的

import java.net.*;
import java.io.*;
public class TcpServer {

	public static void main(String[] args) throws Exception {
		
		//1,创建ServerSocket服务
		ServerSocket ss = new ServerSocket(8888);
		//2,监听指定端口并接收数据
		Socket s = ss.accept();
		//打印客户端IP
		System.out.print("ip:" + s.getInetAddress().getHostAddress()+ "---");
		//3,读入数据并打印到控制台
		InputStream in = s.getInputStream();
		byte[] buf = new byte[1024];
		int len = in.read(buf);
		String data = new String(buf, 0, len);
		System.out.println(data);
		//4,关闭资源
		s.close();
		ss.close();
		
	}

}

最终打印在控制台上的数据为:

ip:127.0.0.1---我是数据

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值