Socket

问题化教学,问题化学习。

 

 

写一个简单的聊天工具

需求:

1类似于qq的聊天群,可以有多人一起聊天。

 

要建立

 

客户端:

package basejava;

import java.io.*;

import java.net.*;

import static tools.Print.*;

public class DailyAdviceClient {       

         publicvoid go(){

                   try{

                            Socket s = newSocket("127.0.0.1",4444);  链接服务器端

                           

                            InputStreamReaderar = new InputStreamReader(s.getInputStream());

读取服务器端的消息

                            BufferedReaderrea = new BufferedReader(ar);

                           

                            Stringad = rea.readLine();

                            print(ad);

                           

                           

                   }catch(IOExceptionex){

                           

                            ex.printStackTrace();

                   }

         }

        

         publicstatic void main(String[] args) {

                   DailyAdviceClientda = new DailyAdviceClient();

                   da.go();

                  

         }

}

服务器

package basejava;

import java.io.*;

import java.net.*;

import static tools.Print.*;

public class DailyAdviceServer {

    public void go(){

       try{

           ServerSocket ss = new ServerSocket(4444);

          

           PrintWriterpw = new PrintWriter(ss.accept().getOutputStream());

           pw.write("我是服务器端");

           pw.close();

          

       }catch(IOException ex){

           ex.printStackTrace();

       }

      

    }

   

    public static void main(String[] args) {

       DailyAdviceServer da = new DailyAdviceServer();

       da.go();

    }

 

}

先执行以下服务器代码,然后再执行客户端,打印结果:我是服务器端

 

获取了服务器端的消息,但是如何把消息给服务器呢?即,服务器端如何接受到客户端的代码呢?

 

 

你继承了Thread就不应该再实现Runnable接口了,因为Thread已经承继了Runnable接口,

或者你不继承Thread类而实现是Runnable,但不管怎样,你都应该重写run()方法。。。

方法1.继承Thread,然后重写run(),

MyThread mt=new MyThread();//MyThread是Thread的继承类

mt.start();

方法2.实现Runnable,实现run()函数,

MyRunnalbe mr=new MyRunnable();//实现Runnable接口的类

Thread td=new Thread(mr);

td.start();

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值