java 多线程使用方法及Socket的使用

public class newThread implements Runnable{
    
    public void run(){
        dosome();
    }
    
    public void dosome(){
        System.out.println("ss");
    }
    
}

class testThread{
    public static void main(){
        Runnable ThreadTask = new newThread();
        Thread s = new Thread(ThreadTask);
        
        s.start();
        System.out.println("back in main");
    }
}
View Code

去专门定义一个类调用Runnable接口,但因为该接口位于java.lang包,因此无需import。

新建一个线程只需在位于主线程的main函数里声明一个Thread对象,形如:

Thread aThread = new Thread(ThreadTask);

这个ThreadTask为使用了Runnable接口的类,并且该接口中只存在一个run方法

//补充网络联机部分:

在服务器上写的服务器程序:

ServerSocket serverSock = new ServerSocket(4242)//表示在服务器上使用4242这个端口来接收用户消息

while(true){

  Socket sock = serverSock.accept();//如果服务器的4242端口收到了信息,则serverSock.accept()返回true,新建一个端口想客户端发送信息

  //如果4242没有收到信息则代码会停止在上一行

  PrintWriter writer = new PrintWriter(sock.getOutputStream());

  writer.println("sssss");

  writer.flush();//因为输出时,只有等到缓冲区满了才输出,有些时候输出的内容比较少的时候,没有充满缓冲区,不会立刻输出


}
View Code

客户端向服务器发信息也是用PrintWriter

客户端读取来自服务器的信息:

Socket sock = new Socket("10.2.132.70",4242);//与服务器连接
InputStreamReader streamReader = new InputStreamReader(socket.getInputStream());
BufferedReader reader = new BufferedReader(streamReader);
String advice = reader.readline();
reader.close();
View Code
原文地址:https://www.cnblogs.com/gabygoole/p/4943744.html