昨天写了段小程序,现贴出来看看。
以下是socket的简单介绍。获取两台联通的机器之间的IP和端口号等信息。
import java.io.IOException;
import java.net.Socket;
public class SockerDemo {
public static void main(String[] args) throws IOException {
Socket socket = new Socket();
System.out.println(socket.getLocalAddress());//这些方法用于获取本地和远程的一些信息
System.out.println(socket.getLocalPort());
System.out.println(socket.getInetAddress());
// System.out.println(socket.getInputStream());
System.out.println(socket.isClosed());
System.out.println(socket.isBound());
System.out.println(socket.isConnected());
}
}
在IDEA工程中,同一src包下。
ServerSocket 这个类的主要功能是监听本机的一个端口。当有事件发生的时候(或者说新的连接到达的时候),新建一个Socket对象,用于与所连接机器与本机的交互。
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
public class ServerSocketDemo {
static ServerSocket serverSocket = null;
public ServerSocketDemo() throws IOException {
}
public static void main(String[] args) throws IOException {
serverSocket = new ServerSocket(8888);
service();
}
public static void service() {
while (true) {
Socket socket = null;
try {
socket = serverSocket.accept();
InputStream inputStream = socket.getInputStream();
byte[] bytes = new byte[20480];
inputStream.read(bytes);
System.out.println(new String(bytes));
//OutputStream这个类继承自FileOutputStream
OutputStream outputStream = socket.getOutputStream();
File file = new File("src/file.html");
FileInputStream fileInputStream = new FileInputStream(file);
fileInputStream.read(bytes);
outputStream.write(bytes);
socket.close();
outputStream.close();
System.out.println("新增连接:" + socket.getInetAddress() + ":" + socket.getPort());
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
这是file.html文件。运行上述Java程序,当在浏览器中请求127.0.0.1:8888的时候,浏览器可跳转到以下界面。
Title我要请求一张图片
目前只能传点文字。
这一行未执行成功。今天想个办法处理一下图片的传送和js文件的传送。