第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > android socket 客户端 服务器端

android socket 客户端 服务器端

时间:2020-02-26 10:56:39

相关推荐

android   socket  客户端 服务器端

以下代码是android 客户端主要代码;视频教程:/course/200_5.html

Socket socket = null;BufferedWriter writer = null;BufferedReader reader = null;public void connect() {AsyncTask<Void, String, Void> read = new AsyncTask<Void, String, Void>() {@Overrideprotected Void doInBackground(Void... arg0) {try {socket = new Socket(ip.getText().toString(), 33333);writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));publishProgress("@success");} catch (UnknownHostException e1) {Toast.makeText(MainActivity.this, "无法连接到服务器", Toast.LENGTH_SHORT).show();} catch (IOException e1) {Toast.makeText(MainActivity.this, "无法连接到服务器", Toast.LENGTH_SHORT).show();}try {String line;while ((line = reader.readLine())!= null) {publishProgress(line);}} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}return null;}@Overrideprotected void onProgressUpdate(String... values) {if (values[0].equals("@success")) {Toast.makeText(MainActivity.this, "连接到服务器", Toast.LENGTH_SHORT).show();}text.append("对方说"+values[0]+"\n");super.onProgressUpdate(values);}};read.execute();}public void send() {try {text.append("我说"+editText.getText().toString()+"\n");writer.write(editText.getText().toString()+"\n");writer.flush();editText.setText("");} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}

服务器端代码;

public class LEDscoket {public static void main(String[] args) {new ServerListener().start();}}

public class ServerListener extends Thread{public void run() {try {ServerSocket serverscoket =new ServerSocket(33333);while(true){Socket scoket =serverscoket.accept();// JOptionPane.showMessageDialog(null, "连接到33333");ChatScoket cs=new ChatScoket(scoket);cs.start();ChatManage.getChatManage().add(cs);}} catch (IOException e) {e.printStackTrace();}}}

public class ChatScoket extends Thread{Socket scoket;public ChatScoket(Socket s) {this.scoket=s;}public void out(String out) {try {scoket.getOutputStream().write((out+"\n").getBytes("UTF-8"));} catch (UnsupportedEncodingException e) {e.printStackTrace();} catch (IOException e) {System.out.println("断开了一个客户端链接");ChatManage.getChatManage().remove(this);e.printStackTrace();}}@Overridepublic void run() {out("{\"message\":\"success\",\"saledata\":[{\"itemid\":\"0d8de188-4c66-4d53-834f-d9e29a2562c3\",\"itemname\":\"黄金南瓜\",\"averageprice\":\"2.30\"},{\"itemid\":\"0d8de188-4c66-4d53-834f-d9e29a2562c3\",\"itemname\":\"大白菜\",\"averageprice\":\"2.60\"},{\"itemid\":\"0d8de188-4c66-4d53-834f-d9e29a2562c3\",\"itemname\":\"黄瓜\",\"averageprice\":\"2.31\"},{\"itemid\":\"0d8de188-4c66-4d53-834f-d9e29a2562c3\",\"itemname\":\"大白菜\",\"averageprice\":\"4.62\"},{\"itemid\":\"0d8de188-4c66-4d53-834f-d9e29a2562c3\",\"itemname\":\"金针菇\",\"averageprice\":\"3.40\"},{\"itemid\":\"0d8de188-4c66-4d53-834f-d9e29a2562c3\",\"itemname\":\"荸荠\",\"averageprice\":\"4.50\"},{\"itemid\":\"0d8de188-4c66-4d53-834f-d9e29a2562c3\",\"itemname\":\"大葱\",\"averageprice\":\"2.38\"},{\"itemid\":\"b12afcca-bff1-4651-ae71-bce6d70a25e4\",\"itemname\":\"金花菜\",\"averageprice\":\"2.60\"},{\"itemid\":\"0d8de188-4c66-4d53-834f-d9e29a2562c3\",\"itemname\":\"土豆\",\"averageprice\":\"4.00\"},{\"itemid\":\"a014caa1-2109-4c8f-b5a4-42cd7ba70e58\",\"itemname\":\"白萝卜\",\"averageprice\":\"4.00\"},{\"itemid\":\"8a7207a1-786e-4523-9154-b983567a3164\",\"itemname\":\"胡萝卜\",\"averageprice\":\"4.00\"}],\"rentalname\":\"瑶瑶\",\"ownerattachmentid\":\"/save/img/0315/a4f9c7de-caee-435d-97e3-38d3a7822c60.png\",\"registrationnumber\":\"蔬菜1\",\"businesstype\":\"蔬菜\",\"boothnum\":\"肉001-002\"}");try {BufferedReader br = new BufferedReader(new InputStreamReader(scoket.getInputStream(),"UTF-8"));String line = null;while ((line = br.readLine()) != null) {System.out.println(line);ChatManage.getChatManage().sent(this, line);}br.close();System.out.println("断开了一个客户端链接");ChatManage.getChatManage().remove(this);} catch (UnsupportedEncodingException e) {e.printStackTrace();} catch (IOException e) {System.out.println("断开了一个客户端链接");ChatManage.getChatManage().remove(this);e.printStackTrace();}}}

管理器 加入队列

public class ChatManage {private ChatManage(){}private static final ChatManage cm=new ChatManage();public static ChatManage getChatManage(){return cm;}Vector<ChatScoket> vector =new Vector<ChatScoket>();public void add(ChatScoket cs) {vector.add(cs);}public void remove(ChatScoket cs) {vector.remove(cs);}public void sent(ChatScoket cs,String out) {for (int i = 0; i < vector.size(); i++) {ChatScoket cschat=vector.get(i);if(!cs.equals(cschat)){cschat.out(out);}}}}

我主要做的是从服务器获取数据在android 客户端显示:

所以在服务器端加一个时钟,一定时间发送一次数据,客户端自动显示。

下载android 端 :/detail/u012922981/9529743

下载服务器端:/detail/u012922981/9529728

服务器端在esplice 里面运行,他们建立连接主要是端口号;随后还的做相应的过滤,不同客户端接受的数据不一样的结果,进一步编程中;随后更新;看不懂代码,就去看我上面的学习视频;

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。