java通信实现

来源:互联网 发布:java.nio.file.path 编辑:程序博客网 时间:2024/04/30 01:07

通信

 

一、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();

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

原创粉丝点击