基于JavaSocket的客户端与服务端
一.先创建 一个Java程序
- 在file -> new ->Java project
2.客户端相关代码
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
try {
//可以在本机通过cmd命令下用ipconfig查看本地地址
Socket client = new Socket("192.168.17.1",8888); //绑定自己的Ip和端口号
OutputStream out = client.getOutputStream();//获得数据发送通道
Scanner sc = new Scanner(System.in);
String message = sc.next();
out.write(message.getBytes());//发送数据通道
InputStream in = client.getInputStream();//获得数据接收通道
int len ;
byte[] data = new byte[128];
len = in.read(data);//接受通道接受数据
System.out.println("获得服务端返回数据:"+new String (data,0,len));
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
二、同样方法创建JavaSocket服务端
1.服务端 代码编写
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Test {
public static void main(String[] args) {
//创建套接字 ip 端口号
try {
ServerSocket socket = new ServerSocket(8888);
System.out.println("Socket套接字创建成功,等待连接");
while(true)
{
final Socket con = socket.accept();
System.out.println("有客户端接入");
new Thread(new Runnable() {
public void run() {
// TODO Auto-generated method stub
InputStream in;
try {
in = con.getInputStream();
byte[] data = new byte[128];
int len = 0;
len = in.read(data);
System.out.println("读到消息:"+new String(data,0,len));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} //获取输入流 用来读取数据
}
}).start();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
三、分别运行程序测试效果
2.从这里我们可以看出我们的客户端已经成功接入了服务端
四.使用网络调试助手与服务端通信 NetAssit
这里看到通过网络调试助手发送的数据已成功被服务端接受到了