首页 > 编程语言 >java 网络编程Socket编程

java 网络编程Socket编程

时间:2023-02-23 12:13:52浏览次数:35  
标签:socketOnServer java Socket 编程 new null out

 

 

 

 

Server.java

复制代码
import java.io.*;
import java.net.*;
public class Server {
   public static void main(String args[]) {
      String [] answer ={"南非","进入世界杯了","哈哈...问题真逗!"};
      ServerSocket serverForClient=null;
      Socket socketOnServer=null;
      DataOutputStream out=null;
      DataInputStream  in=null;
      try { serverForClient = new ServerSocket(2010);
      }
      catch(IOException e1) {
            System.out.println(e1);
      } 
      try{ System.out.println("等待客户呼叫");
           socketOnServer = serverForClient.accept(); //堵塞状态,除非有客户呼叫
           out=new DataOutputStream(socketOnServer.getOutputStream());
           in=new DataInputStream(socketOnServer.getInputStream());
           for(int i=0;i<answer.length;i++) {
              String s=in.readUTF(); // in读取信息,堵塞状态
              System.out.println("服务器收到客户的提问:"+s);
              out.writeUTF(answer[i]);
              Thread.sleep(500);
           }
      }
      catch(Exception e) {
          System.out.println("客户已断开"+e);
      }
   }
}
复制代码

Client.java

复制代码
import java.io.*;
import java.net.*;
public class Client {
   public static void main(String args[]) {
      String [] mess ={"2010世界杯在哪举行?","巴西进入世界杯了码?","中国进入世界杯了码?"};
      Socket mysocket;
      DataInputStream in=null;
      DataOutputStream out=null;
      try{  mysocket=new Socket("127.0.0.1",2010);
            in=new DataInputStream(mysocket.getInputStream());
            out=new DataOutputStream(mysocket.getOutputStream()); 
            for(int i=0;i<mess.length;i++) {
              out.writeUTF(mess[i]);
              String  s=in.readUTF();   //in读取信息,堵塞状态
              System.out.println("客户收到服务器的回答:"+s);
              Thread.sleep(500);
            } 
       }
       catch(Exception e) {
            System.out.println("服务器已断开"+e);
       }
   } 
}
复制代码

标签:socketOnServer,java,Socket,编程,new,null,out
From: https://www.cnblogs.com/kn-zheng/p/17147446.html

相关文章

  • C#websocket及时通信协议的实现方法示例
    传统“长轮询”实现Web端即时通讯的问题WebSocket出现之前,Web端为了实现即时通讯,所用的技术都是Ajax轮询(polling)。轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发......
  • Java培训班多少钱,有没有便宜的
    Java软件开发行业至今的发展趋势是非常不错的,许多专业的Java培训班培养出来的学员都取得了不错的成绩,所以,这也是为什么每年都有同学不断报名培训的原因之一,为此,Java培训也......
  • java单体项目Hutools连接Sqlite
    hutools的官方示例只有连接MySql的用法,没有sqlite用法,但是项目又需要,就自己摸索了一下。参考springboot连接mysql方式做了一个,过程还是比较简单,这里做个记录 1,resourc......
  • java socket网络编程(多线程技术)
    Client.javaimportjava.io.*;importjava.net.*;importjava.util.*;publicclassClient{publicstaticvoidmain(Stringargs[]){Scannerscann......
  • 熟悉JavaScript闭包
    熟悉JavaScript闭包闭包(closure)是一个函数以及其捆绑的周边环境状态(lexicalenvironment,词法环境)的引用的组合。简而言之,闭包让开发者可以从内部函数访问外部函数的作用......
  • JavaScript 中的 apply、call、bind
    在JavaScript中,apply、call、bind是三个与函数调用相关的方法,它们都允许你在调用函数时手动设置函数的上下文(即this指向)。1、apply方法:apply方法允许你调用一个函......
  • java之线程池
    1.线程池的作用  如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时......
  • Java后端培训机构哪个比较好?不了解怎么选
    Java后端培训机构哪个比较好?这样的问题,对于机构的评价每个人都有自己的想法和看法,不能一概而论。所以,小编觉得,我们在看别人推荐的时候也要有自己的判断,通过实地考察在与自......
  • 北京Java培训机构哪家比较好
    北京作为一线互联网发展城市,Java行业整体是很不错的,人才的需求量也非常大,就业前景与薪资待遇也很可观,所以,北京的Java培训相对来说是比较多的,到这里来学习的人也不少,大家都......
  • Java哪里培训好,需要考虑几个情况
    Java哪里培训好,事实上,正规的Java培训还是有不少的,并且不同城市的机构教学水平有这很大差距,这就会导致,最终的学习效果与成果也都存在一定的差距,所以,我们在选择Java培训的时......