import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class socket {
public static void main(String[] args) {
byte[] data = new byte[128];
int len = 0;
try {
//创建套接字,IP,端口号
ServerSocket socket = new ServerSocket(8800);
System.out.println("socket创建成功,发送信息!");
Socket ss = socket.accept();
System.out.println("有客户端输入!");
InputStream in = ss.getInputStream();
//获取输入流,用来读取数据
len = in.read(data);
System.out.println("网络助手读到消息" +new String(data,0,len));
} catch (IOException e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
socket创建成功,发送信息!
有客户端输入!
网络助手读到消息问问自己真的努力了吗
Tips :
IP地址可以在自己连接的网络WiFI属性种查看。端口号自己随意设置。
该方法只能传输一次数据, 服务端的网络连接就自动断开了,要想传输一次数据后网络连接不断开我在此代码的基础上进行了改进。
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class NewSocket {
public static void main(String[] args) {
try {
ServerSocket socket = new ServerSocket(8802);
System.out.println("客户端创建成功,等待连接!");
while(true)
{
final Socket cno = socket.accept();
System.out.println("连接成功,等待发送消息!");
new Thread(new Runnable() {
public void run() {
// TODO Auto-generated method stub
try {
byte []data = new byte[128];
int len = 0 ;
InputStream put = cno.getInputStream();
len = put.read(data);
System.out.println("发送:"+ new String(data,0,len));
} catch (IOException e) {
// TODO: handle exception
e.printStackTrace();
}
}
}).start();
}
} catch (IOException e) {
e.printStackTrace();
// TODO: handle exception
}
}
}
客户端创建成功,等待连接!
连接成功,等待发送消息!
发送:迷茫吗
连接成功,等待发送消息!
发送:好想成为大神
连接成功,等待发送消息!
发送:好想成为大神
这种方法虽然在每次传输完一次数据之后都要重新打开端口,但是不用重新执行所写的Java程序。