?客户端写法和读取服务器端口的数据
import java.io.*;
import java.net.Socket;
import java.util.ArrayList;
public class FuXi3 {
public FuXi3() throws IOException {
}
public static void main(String[] args) throws IOException {
demo02();
//demo01();
}
private static void demo02() throws IOException {
//创建一个客户端对象socket,构造方法中绑定服务器ip地址和端口号
Socket socket = new Socket("192.168.1.31",8888);
// 使用socket对象里面的getOutputStream方法来获取网络字节输出流OutputStream对象
OutputStream outputStream = socket.getOutputStream();
// 使用网络字节输出流OutputStream中的write来向服务器发送数据
outputStream.write("你好".getBytes());
// 释放资源
//如果没有服务器进行三次握手回应那么会抛出此异常ConnectException 表示服务器无响应
InputStream inputStream = socket.getInputStream();//创建服务器与客服端之间的输入流对象
byte[] a2 = new byte[1024];//创建数组
int read = inputStream.read(a2);//一次读取全部数据返回读取到的有效个数
System.out.println(new String(a2,0,read));//打印读到的有效数据
inputStream.close();//释放资源
outputStream.close();
socket.close();
}
}
?服务器端口的写法?
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class FuXi4{
public static void main(String[] args) throws IOException {
ServerSocket a = new ServerSocket(8888);//创建服务器对象,绑定端口
Socket accept = a.accept();//接受链接accept方法,返回Socket对象
InputStream inputStream = accept.getInputStream();//从获取到的对象中调用输入流
byte[] bytes = new byte[1024];//创建byte数组
int read = inputStream.read(bytes);//一次性把客户端的数据都读写进来
System.out.println(new String(bytes,0,read));//打印读写到到的数据
OutputStream outputStream = accept.getOutputStream();//调用socket里的输入流
outputStream.write("收到了谢谢".getBytes());//回写数据
outputStream.close();//释放资源
accept.close();//释放资源
a.close();//释放资源
}
}
|