TCP
客户端: Socket:此类实现客户端套接字,套接字是两台机器间通信的端点。操作的是字节流。
Socket(String host,int port) 创建一个流套接字并将其连接到指定主机上的指定端口号。
InputStream getInputStream() 返回此套接字的输入流。
shutdownOutput() 禁止此套接字的输出流。
服务器端: Server Socket :此类实现服务器套接字,服务器套接字等待请求网络传入。
ServerSocket(int port) 创建绑定到特定端口的服务器套接字。
Socket accept()侦听并接受此套接字的连接。
服务器端没有自己的字节流,只能用客户端的。
连接时应先启动服务器,否则客户端无法连接。
package WangLuo;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class TCPServer01 {
public static void main(String[] args) throws IOException {
//创建服务器端的Socket对象
ServerSocket server = new ServerSocket(7890);//传入端口号
//监听客户端请求
Socket client = server.accept();
//接受数据
InputStream is = client.getInputStream();
byte[] buf = new byte[1024];
int len = is.read(buf);
System.out.println(new String(buf,0,len));
//回复数据
OutputStream os = client.getOutputStream();
String str = "我是服务器";
os.write(str.getBytes());
//释放资源---后创建的先关闭
os.close();
is.close();
client.close();
server.close();
}
}
package WangLuo;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
public class TCPClient01 {
public static void main(String[] args) throws IOException {
//创建客户端Socket对象,
//本机环回地址127.0.0.1或localhost
Socket client = new Socket("127.0.0.1",7890);//传入IP地址和端口号,建立连接
//数据传输
//客户端给服务器发送内容
OutputStream os = client.getOutputStream();
String str = "我是客户端";
os.write(str.getBytes());
client.shutdownOutput();
//接受数据
InputStream is = client.getInputStream();
byte[] buf = new byte[1024];
int len = is.read(buf);
System.out.println(new String(buf