客户端:
public class MyClient {
public static void main(String[] args) {
try {
Socket s = new Socket("192.168.0.106",9090);
OutputStream ops = s.getOutputStream();
ops.write("gg".getBytes());
ops.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
服务端:
public class MyServer {
public static void main(String[] args) {
try {
ServerSocket serverSocket = new ServerSocket(9090);
System.out.println("服务器开启");
while(true){
Socket socket = serverSocket.accept();
new ServiceThread(socket);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
public class ServiceThread implements Runnable{
Socket socket;
private InputStream iS;
public ServiceThread(Socket socket){
this.socket = socket;
InetAddress address = socket.getInetAddress();
System.out.println("---客户端连接:"+address+"---");
try {
iS = socket.getInputStream();
} catch (IOException e) {
e.printStackTrace();
}
new Thread(this).start();
}
@Override
public void run() {
while(true){
try{
String msg = MessageUtil.read(iS);
System.out.println("客户端发送的消息:"+msg);
Thread.sleep(200);
}catch(Exception e){
System.out.println("---客户端关闭连接---");
break;
}
}
}
}
信息的读与写的方法
public class MessageUtil {
public static String read(InputStream iS){
try {
byte[] b = new byte[1024];//缓存数组(1k)
int length = -1;
String content = "";
while((length = iS.read(b))!= -1){
String result = new String(b,0,length);
if("#end#".equals(result)){
break;
}else{
content += result;
}
}
return content;
} catch (Exception e) {
throw new RuntimeException();
}
}
public static void write(OutputStream ops,String t){
try {
ops.write(t.getBytes());
ops.write("#end#".getBytes());
} catch (IOException e) {
e.printStackTrace();
}
}
}