网络编程入门demo
下面是一个简单的例子,本地跟本地进行一次简单的通信
如下服务端代码:
package javase.cn.day11;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class serverDemo {
public static void main(String[] args) throws IOException {
// 启动一个socket服务端(本质就是向操作系统注册一个端口号,并且监听这个端口上的信息)
ServerSocket ss = new ServerSocket(10086);
// 监听这个端口上的消息
Socket sc = ss.accept(); //等待并接收客服端的请求,建立socket连接,这是一个阻塞方法
// 从连接中接收数据,需要先获得一个输入流工具
InputStream in = sc.getInputStream();
// 从输入流中拿取数据
int read = in.read();
char x = (char)read; //通过公司内部的通信协议来决定到底传送的什么数据类型
System.out.print(x);
in.close();
sc.close();
}
}
如下客户端代码:
package javase.cn.day11;
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
public class clientDemo {
public static void main(String[] args) throws UnknownHostException, IOException {
// 向服务端发出建立连接的请求
Socket socket = new Socket("localhost",10086);
// 从链接中拿到一个发数据的工具
OutputStream out = socket.getOutputStream();
// 利用out流发数据
out.write("a".getBytes());
out.close();
}
}
a
一次读多个字节
服务端代码
package javase.cn.day11;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class serverDemo {
public static void main(String[] args) throws IOException {
// 启动一个socket服务端(本质就是向操作系统注册一个端口号,并且监听这个端口上的信息)
ServerSocket ss = new ServerSocket(10086);
// 监听这个端口上的消息
Socket sc = ss.accept(); //等待并接收客服端的请求,建立socket连接,这是一个阻塞方法
// 从连接中接收数据,需要先获得一个输入流工具
InputStream in = sc.getInputStream();
// 从输入流中拿取数据
//int read = in.read(); // read也是一种阻塞方法
//char x = (char)read; //通过公司内部的通信协议来决定到底传送的什么数据类型
// 一次接受多个字节的数据
byte[] b = new byte[10086];
int num = in.read(b); // 获取读到的字节长度
String string = new String