黑马程序员-TCP-Socket-ServerSocket

------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

含两方面

1. 客户端

2. 服务端

 

客户端 :Socket

此类实现客户端套接字,套接字是两台机器间实现通信的端点。

 

常用构造方法:

Socket(InetAddress address, int port) 
创建一个流套接字并将其连接到指定 IP 地址的指定端口号。

Socket(String host, int port) 

创建一个流套接字并将其连接到指定主机上的指定端口号。

 

由此构造方法,可以看出

TCP协议是有连接通讯,其在创建时就需要连接到指定IP地址的指定端口号。

 

常用方法:

getInputStream() : 返回 InputStream对象

getOutputStream : 返回 OutputStream对象

package com.lxh.net;
import java.net.*;
import java.io.*;

public class Client {
	public static void main(String[] args) throws Exception {
		// 1. 创建客户端套接字服务
		Socket cliSocket = new Socket(InetAddress.getLocalHost().getHostAddress(),3000);
		
		// 2. 从客户端套接字对象中获取输出流对象
		OutputStream out = cliSocket.getOutputStream();
		
		out.write("the message from client ".getBytes());
		
		cliSocket.close();
	}
}
服务端 :ServerSocket

此类实现服务器套接字。服务器套接字等待请求通过网络传入,他基于该请求执行某些操作。

 

特点:

作为服务端,有很多客户端向其发起访问,所以服务端会在接收该访问的套接字,并在本地创建一个访问套接字的对象,并使用该对象的I/0流。

 

常用构造方法:

ServerSocket(int port) 
创建绑定到特定端口的服务器套接字。

 

 

常用方法:

accept():

监听客户端访问到该套接字的连接,此方法在连接之前一直阻塞。

package com.lxh.net;
import java.net.*;
import java.io.*;

public class Server {
	
	public static void main(String[] args) throws Exception {
		// 1. 创建服务端套接字,并绑定到特定端口
		ServerSocket ss = new ServerSocket(3000);
		
		// 2. 使用accept()方法,接收访问的客户端套接字
		Socket s = ss.accept();
		
		// 3. 使用服务端套接字获取客户端套接字的IP地址和相关信息
		String cliIP = s.getInetAddress().getHostAddress();
		
		// 4. 使用客户端套接字的输出流接收数据
		InputStream in = s.getInputStream();
		byte[] buffer = new byte[1024];
		in.read(buffer);
		System.out.println(cliIP + "Say:" + new String(buffer));
	}
}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值