标签:创建 网络开发 必须 tcp 输出 客户 except net 需要
Socket:网络套接字,网络插座,建立网络通信连接至少要一对端口号(socket)。socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口;socket用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信。
此类实现客户端套接字
构造方法
构造方法 | 作用 |
---|---|
Socket(String host, int port) | 创建一个套接字,并将其连接到指定的主机的指定端口上 |
参数
String host:服务器主机的名称、服务器的IP地址
int port:服务器的端口号
成员方法
成员方法 | 作用 |
---|---|
OutputStream getOutputStream() | 返回此套接字的字节输出流 |
InputStream getInputStream() | 返回此套接字的字节输入流 |
void close() | 关闭此套接字 |
实现步骤
注意:
TCP的客户端代码:
package cn.zhuobo.day15.aboutSocket;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
public class ClientSocket {
public static void main(String[] args) throws IOException {
Socket so = new Socket("127.0.0.1", 8868);
OutputStream outputStream = so.getOutputStream();
outputStream.write("你是他妈的服务器吗".getBytes());
InputStream inputStream = so.getInputStream();
byte[] bytes = new byte[1024];
int len = inputStream.read(bytes);
System.out.println(new String(bytes, 0, len));
so.close();
}
}
此类实现服务端套接字
构造方法:
构造方法 | 作用 |
---|---|
ServerSocket(int port) | 创建一个服务器套接字,并绑定到特定的端口号上 |
成员方法:
成员方法 | 作用 |
---|---|
Socket accept() | 监听并接收此套接字的连接,用这个方法获取请求连接的客户端Socket对象 |
void close() | 关闭此套接字 |
服务器ServerSocket的实现过程
服务器ServerSocket代码:
package cn.zhuobo.day15.aboutSocket;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class MyServerSocket {
public static void main(String[] args) throws IOException {
ServerSocket server = new ServerSocket(8868);
Socket so = server.accept();
InputStream inputStream = so.getInputStream();
byte[] bytes = new byte[1024];
int len = inputStream.read(bytes);
System.out.println(new String(bytes, 0, len));
OutputStream outputStream = so.getOutputStream();
outputStream.write("我是他么的服务器,你是他么的客户端吗".getBytes());
so.close();
server.close();
}
}
这样就客户端和服务器就实现了通信
标签:创建 网络开发 必须 tcp 输出 客户 except net 需要
原文地址:https://www.cnblogs.com/zhuobo/p/10662061.html