java通信实现

本文详细介绍了Java中实现通信的两种关键类——Socket和ServerSocket。Socket用于客户端,实现与服务器的连接,而ServerSocket则在服务器端等待客户端的连接请求。文章分别阐述了它们的构造方法和常用方法,并给出了一个简单的单项通信的客户端示例代码。
摘要由CSDN通过智能技术生成

通信

 

一、Socket

这个类实现客户端套接字。套接字是两台机器之间通讯的端点。

 

1.1 socket 的常用构造方法

 

socket()

创建一个未连接的套接字,并使用系统默认类型的socketImpl

socket(InetAddress address,int port)

创建流套接字并将其连接到指定ip地址的指定端口号

 

1.2 socket 的常用方法

 

void

bind(SocketAddress bingpoint)

将套接字绑定到本地地址

void

close()

关闭此套接字

void

connect(SocketAddress endpoint)

将此套接字连接到服务器

socketChannel

getChannel()

返回与此套接字相关联的唯一的SocketChannel对象(如果有)

inetAddress

getInetAddress()

返回套接字所连接的地址

InputStream

getInputStream()

返回此套接字的输入流

OutputStream

getOutputStream()

返回此套接字的输出流


 

二、ServerSocket

这个类实现了服务器套接字。服务器套接字等待通过网络进入的请求。它根据该请求执行一些操作,然后将结果返回给请求者。

 

2.1 ServerSocket的常用构造方法

 

ServerSocket()

创建未绑定的服务器套接字

ServerSocket(int port)

创建绑定到指定端口的服务器套接字

ServerSocket(int port,int backlog)

创建服务器套接字并将其绑定到指定的本地端口号,并指定了积压

ServerSocket(int port,int backlog,inetAddress bindAddr)

创建一个具有指定端口的服务器,侦听backlog和本地IP地址绑定。

 

2.2 ServerSocket的常用方法

 

socket

accept()

侦听要连接到此套接字并接受它

void

bing(SocketAddress endpoint)

ServerSocket绑定到特定地址(IP地址和端口号)

void

colse()

关闭此套接字

ServerSocketChannel

getChannel()

返回与此套接字相关联的唯一的ServerSocketChannel对象(如果有)

InetAddress

getInetAddress()

返回此服务器套接字的本地地址

int

getLocalPort()

返回此套接字正在侦听的端口号

SocketAddress

getLocalSocketAddress()

返回此套接字绑定到的端点的地址

String

tpString()

将该套接字的实现地址和实现端口返回为String

 

三、实现单项通信

3.1 客户端

 

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.PrintWriter;

import java.net.Socket;

import java.net.UnknownHostException;

//以上都是导入的包(import

public class Test{

public static void main(String[] args){

try{

//创建socket,指定ipport(端口)

Socket socket = new Socket(“127.0.0.1”,5000);

/**

*获得控制台输入的内容

*BufferedReader 从字符输入流读取文本,缓冲字符

*/

BufferedReader bu = new BufferedReader(new InputStream(System.in));

//输入流与输出流

PrintWriter pw = new PrintWriter(socket.getOutputStream());

BufferedReader bu2 = new BufferedReader(new InputStream(socket.getInputStream()));

String readline = bu2.readLine();

//反复向服务器写入数据

while(!readline.equals(“exit”)){

pw.println(readline);

pw.flush();

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值