当前位置: 首页 > news >正文

仙桃网站设计公司辽宁建设工程招标信息网官网

仙桃网站设计公司,辽宁建设工程招标信息网官网,单页面推广网站,智慧团建系统入口Android的网络应用#xff1a;简单的C/S聊天室#xff0c;供大家参考#xff0c;具体内容如下服务器端#xff1a;提供两个类创建ServerSocket监听的主类:MyServer.java负责处理每个Socket通信的线程类:ServerThread.java客户端#xff1a;是一个Android应用程序Multi…Android的网络应用简单的C/S聊天室供大家参考具体内容如下服务器端提供两个类创建ServerSocket监听的主类:MyServer.java负责处理每个Socket通信的线程类:ServerThread.java客户端是一个Android应用程序MultiThreadClient界面提供两个文本框和一个发送按钮Activity通过Handler来处理来自子线程的消息客户端需要一个子线程负责读取来自网络的数据项目效果服务器端代码MyServer.javaimport java.io.IOException;import java.net.ServerSocket;import java.net.Socket;import java.util.ArrayList;public class MyServer{//定义保存所有Socket的ArrayListpublic static ArrayList socketList new ArrayList();public static void main(String[] args)throws IOException{ServerSocket ss new ServerSocket(8000);while(true){//此行代码会阻塞将一直等待别人的连接Socket s ss.accept();socketList.add(s);//每当客户端连接后启动一条ServerThread线程为该客户端服务new Thread(new ServerThread(s)).start();}ServerThrad.javaimport java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStream;import java.net.Socket;//负责处理每个线程通信的线程类public class ServerThread implements Runnable{//定义当前线程所处理的SocketSocket s null;//该线程所处理的Socket所对应的输入流BufferedReader br null;public ServerThread(Socket s)throws IOException{this.s s;//初始化该Socket对应的输入流br new BufferedReader(new InputStreamReader(s.getInputStream() , utf-8)); //②}public void run(){try{String content null;//采用循环不断从Socket中读取客户端发送过来的数据while ((content readFromClient()) ! null){//遍历socketList中的每个Socket//将读到的内容向每个Socket发送一次for (Socket s : MyServer.socketList){OutputStream os s.getOutputStream();os.write((content \n).getBytes(utf-8));}}}catch (IOException e){e.printStackTrace();}}//定义读取客户端数据的方法private String readFromClient(){try{return br.readLine();}//如果捕捉到异常表明该Socket对应的客户端已经关闭catch (IOException e){//删除该Socket。MyServer.socketList.remove(s); //①}return null;}}客户端代码布局文件main.xmlandroid:orientationverticalandroid:layout_widthfill_parentandroid:layout_heightfill_parentandroid:orientationhorizontalandroid:layout_widthfill_parentandroid:layout_heightwrap_contentandroid:idid/inputandroid:layout_width240pxandroid:layout_heightwrap_content/android:idid/sendandroid:layout_widthfill_parentandroid:layout_heightwrap_contentandroid:paddingLeft8pxandroid:textstring/send/android:idid/showandroid:layout_widthfill_parentandroid:layout_heightfill_parentandroid:gravitytopandroid:editablefalseandroid:cursorVisiblefalse/Activity文件MultiThreadClient.javapackage org.wwj.net;import java.io.OutputStream;import java.net.Socket;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;public class MultiThreadClient extends Activity{// 定义界面上的两个文本框EditText input, show;// 定义界面上的一个按钮Button send;OutputStream os;Handler handler;Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);input (EditText) findViewById(R.id.input);send (Button) findViewById(R.id.send);show (EditText) findViewById(R.id.show);Socket s;handler new Handler(){Overridepublic void handleMessage(Message msg){// 如果消息来自于子线程if (msg.what 0x123){// 将读取的内容追加显示在文本框中show.append(\n msg.obj.toString());}}};try{s new Socket(183.30.181.228 , 8000);// 客户端启动ClientThread线程不断读取来自服务器的数据new Thread(new ClientThread(s, handler)).start(); // ①os s.getOutputStream();}catch (Exception e){e.printStackTrace();}send.setOnClickListener(new OnClickListener(){Overridepublic void onClick(View v){try{// 将用户在文本框内输入的内容写入网络os.write((input.getText().toString() \r\n).getBytes(utf-8));// 清空input文本框input.setText();}catch (Exception e){e.printStackTrace();}}});}}子线程类ClientThread.javapackage org.wwj.net;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.net.Socket;import android.os.Handler;import android.os.Message;public class ClientThread implements Runnable{//该线程负责处理的Socketprivate Socket s;private Handler handler;//该线程所处理的Socket所对应的输入流BufferedReader br null;public ClientThread(Socket s , Handler handler)throws IOException{this.s s;this.handler handler;br new BufferedReader(new InputStreamReader(s.getInputStream()));}public void run(){try{String content null;//不断读取Socket输入流中的内容。while ((content br.readLine()) ! null){// 每当读到来自服务器的数据之后发送消息通知程序界面显示该数据Message msg new Message();msg.what 0x123;msg.obj content;handler.sendMessage(msg);}}catch (Exception e){e.printStackTrace();}}}以上就是本文的全部内容希望对大家的学习有所帮助也希望大家多多支持找一找教程网。
http://www.yutouwan.com/news/20627/

相关文章:

  • 云服务器建站流量精灵网页版
  • 在东莞建公司网站网站模板哪里下载
  • 定制网站制作报价做外贸的基本流程
  • 济南做公司网站襄阳集团网站建设
  • 推荐几个没封的正能量网站房子装修设计图用什么软件
  • 长沙网站公司怎么把网站维护
  • 美食网站开发的特点与总结宁波网站建设公司制作网站
  • 辽宁省住房和建设厅网站好的公司网站建设
  • 网站开发证网站没内容可以备案吗
  • 东莞网站建设网站做编程的 网站
  • 无锡网站排名团队网站建设论文html格式
  • 网站优化排名软件哪些最好dedecms调用不同数据库wordpress
  • 商城建站模板银川网站建设公司
  • 网站头部导航样式wordpress免费主题企业
  • 移动端网站推广wordpress 关闭搜索引擎
  • 专业做财经直播网站有哪些网站建设关于
  • 房地产开发公司网站源码成品网站w灬源码伊甸院
  • 校园网站建设策划书国际最新24小时军事消息
  • 如何选择一个好的优质网站建设公司十堰网站建设专家
  • 网站登录设计欣赏中国免费网站服务器
  • 宜兴城乡建设局网站阿里云1m 宽带做网站服务器
  • 北京东城做网站推广什么
  • 峡山网站建设电子商务网站建设课程设计思路
  • 有哪些网站做外贸的青岛建设企业网站
  • 专业网站开发制作公司旅游网站推荐
  • 哪个公司做农村产权交易网站关键词挖掘工具爱网
  • 优惠券网站怎么做的帝国cms网站源码
  • hyip系统网站开发56网站可以做电子相册
  • 建设网站作用英文网站优化
  • 网络营销上的网站建设流程wordpress 4 drupal 8