一、Socket
1.Socket构造方法
构造方法说明
Socket()该创建的对象,没有指定IP地址和端口号,意味着只创建了客户端对象,并且没有连接任何服务器。通过该构造方法创建对象后还需要调用connect(SocketAddress endpoint)方法,才能完成与指定服务器端的连接,其中参数endpoint用于封装IP地址和端口号Socket(String host,int port)使用该构造方法在创建Socket对象时会根据参数去连接在指定地址和端口上运行的服务器程序,其中host接收的是一个字符串类型的IP地址Socketa(InetAddress address,int port)该构造方法在使用上与第二个构造方法类似,参数address用于接受一个InetAddress类型的对象,该对象用于封装一个IP地址。
2.Socket常用方法
方法说明
int getPort()返回一个int类型对象,该对象是Socket对象与服务器连接的端口号。InetAddress getLocalAddress()获取Socket对象绑定的本地IP地址,并且IP地址封装InetAddress类型的对象返回void close()关闭Socket连接,结束本次通信。关闭Socket之前,应将与Socket相关的所有输入流全部关闭,这是因为一个良好的程序应该在执行完毕时释放所有的资源。InputStream getInputStream()返回一个InputStream类型的输入流对象。如果该对象是由服务器端的Socket返回的,就用于读取客户端发送的数据;反之,就用于读取服务器端发送的数据。OutputStream getOutputStream()返回一个OutputStream类型的输出流对象。如果该对象是由服务器端的Socket返回的,就用于向客户端发送数据;反之,就用于向服务器端发送数据。
package com
.bjpowernode
.java_learning
;
import java
.io
.DataInputStream
;
import java
.io
.DataOutputStream
;
import java
.net
.Socket
;
public class D126_1_Socket {
public static void main(String
[] args
) {
Socket client_socket
= null
;
DataInputStream in
= null
;
DataOutputStream out
= null
;
String ip
= "127.0.0.1";
int port
= 5050;
try {
client_socket
= new Socket(ip
,port
);
in
= new DataInputStream(client_socket
.getInputStream());
out
= new DataOutputStream(client_socket
.getOutputStream());
out
.writeUTF("你好,我是客户机A");
System
.out
.println("客户机启动,向服务器发送信息:你好,我是客户机A");
String str
= in
.readUTF();
System
.out
.println("服务器端的响应信息:"+str
);
}catch (Exception e
) {
System
.out
.println(e
);
}finally {
try{
in
.close();
out
.close();
client_socket
.close();
}catch(Exception e
) {
}
}
}
}
运行结果: 释义
该程序首先创建了绑定5050端口的服务器端Socket,并进行连接监听。如果有连接请求,则创建Socket连接,并且建立输入流对象和输出对象。通过输入流对象读取客户端发来的内容,通过输出流对象向客户端发送相对内容。
二、源码:
D126_1_Socket.javahttps://github.com/ruigege66/Java/blob/master/D126_1_Socket.java:https://blog.csdn.net/weixin_44630050博客园:https://www.cnblogs.com/ruigege0000/欢迎关注微信公众号:傅里叶变换,个人账号,仅用于技术交流,后台回复“礼包”获取Java大数据学习视频礼包