多个android手机客户端通信,android中利用Socket实现手机客户端与PC端进行通信
服务器端:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class SocketServer extends Thread{
public void run(){
Socket client;
String msg="";
try {
while(true){
client=responseSocket();
while(true){
msg=receiveMsg(client);
System.out.println("收到客户端消息:"+msg);
sendMsg(client,msg);
if(true){
break;
}
}
closeSocket(client);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static final int PORT=9999;
ServerSocket ss;
BufferedWriter bw;
BufferedReader br;
public void createSocket() throws IOException{
ss=new ServerSocket(PORT);
System.out.println("服务器已经开启······");
}
public Socket responseSocket() throws IOException{
Socket client=ss.accept();
System.out.println("客户端已经连接······");
return client;
}
public void closeSocket(Socket s) throws IOException{
br.close();
bw.close();
s.close();
System.out.println("客户端已经关闭······");
}
public void sendMsg(Socket s,String msg) throws IOException{
bw=new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
bw.write(msg+"\n");
bw.flush();
}
public String receiveMsg(Socket s) throws IOException{
br=new BufferedReader(new InputStreamReader(s.getInputStream()));
String msg=br.readLine();
System.out.println("服务器收到客户端消息:"+msg);
return msg;
}
public SocketServer() throws IOException{
createSocket();
}
public static void main(String args[]) throws IOException{
SocketServer ss=new SocketServer();
if(ss!=null){
ss.start();
}
}
}
Android客户端:
package com.colorful.socket;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.Socket;
import java.net.UnknownHostException;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class SocketClient extends Activity {
TextView tv;
EditText et;
Button btn;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
init();
}
public void init(){
et=(EditText)findViewById(R.id.et);
btn=(Button)findViewById(R.id.btn);
tv=(TextView)findViewById(R.id.tv);
btn.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String s=et.getText().toString();
try {
connectToServer(s);
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
}
public void connectToServer(String s) throws UnknownHostException, IOException{
Socket client=requestSocket("输入电脑的IP地址",9999);
sendMsg(client,s);
String str=receiveMsg(client);
tv.setText(str);
System.out.println(str);
}
public Socket requestSocket(String host,int port) throws UnknownHostException, IOException{
Socket s=new Socket(host,port);
return s;
}
public void sendMsg(Socket socket,String msg) throws IOException{
BufferedWriter writer=new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
writer.write((msg.replaceAll("\n", "")+"\n"));
writer.flush();
}
public String receiveMsg(Socket socket) throws IOException{
BufferedReader reader=new BufferedReader(new InputStreamReader(socket.getInputStream()));
String msg=reader.readLine();
return msg;
}
}
最后不要在AndroidManifest.xml中添加如下权限:
多个android手机客户端通信,android中利用Socket实现手机客户端与PC端进行通信相关推荐
- Android手机与PC端进行通信
最近尝试进行Android与PC端进行通信的问题.首先我在Eclipse上利用AWT图形界面建立了一个简单的服务端窗口,用来发送并接收客户端的消息,然后在Android Studio上创建客户端.第一 ...
- Java中利用socket实现简单的服务端与客户端的通信(中级)——实现任意双向通信
本文计划采用socket实现客户端和服务端的任意双向通信,即客户端可以随时给服务端发消息,服务端也可以随时给客户端发消息,最终结果就是一个类似与QQ的聊天软件的功能. 以下代码可以直接拷贝到Eclip ...
- Java中利用socket实现简单的服务端与客户端的通信(基础级)
在上一篇文章中,简单的介绍了java中入门级的socket编程,简单的实现了客户端像服务器端发送数据,服务器端将数据接收并显示在控制台,没有涉及多线程.上一篇文章的链接:Java中利用socket实现 ...
- Java中利用socket实现简单的服务端与客户端的通信(入门级)
Java编程中,要想要使用网络通信,就离不开Socket编程,在此对socket进行简单的介绍.首先声明,这是一个入门级的介绍,仅仅简单的实现了客户端向服务端发送数据,服务端正常的接收数据,当接收到特 ...
- 我的世界手机版javaui材质包_传奇世界中变带元神手机版下载-传奇世界中变带元神手机版正版下载v1.0...
传奇世界中变带元神手机版是一款众多游戏平台热推的传奇手游,不定期为玩家开放超值奖池,每天签到都能领取奖励,各种时装自由装扮,超多副本让你热血天战,快来下载传奇世界中变带元神手机版试试吧,与好友沙城争霸 ...
- java android消息推送_Android中使用socket通信实现消息推送的方法详解
原理最近用socket写了一个消息推送的demo,在这里和大家分享一下. 主要实现了:一台手机向另外一台手机发送消息,这两台手机可以随时自由发送文本消息进行通信,类似我们常用的QQ. 效果图: 原理: ...
- (转)android技巧01:Preferencescreen中利用intent跳转activity
原文连接:http://blog.csdn.net/xianming01/article/details/7543464 设置中的Preferencescreen不仅可以作为设置界面显示,而且还能够启 ...
- C#中利用Socket实现网络语音通信[初级版本]
现在时下的VOIP软件很多,比较有名的就是Skype,还有其它诸如UUcall.快门等等.它们提供的功能除了网络上的语音通话外,还可以与固定电话.手机等通话.在本篇中主要介绍利用C#实现语音通信的基本 ...
- DirectX编程:C#中利用Socket实现网络语音通信
现在时下的VOIP软件很多,比较有名的就是Skype,还有其它诸如UUcall.快门等等.它们提供的功能除了网络上的语音通话外,还可以与固定电话.手机等通话.在本篇中主要介绍利用C#实现语音通信的基本 ...
最新文章
- 区块链开发:为什么你应该学习?
- 北京理工大学python系列课程-北理工《Python语言程序设计》荣获中国最美慕课一等奖...
- 用c语言编程实现strcpy,用c语言.模拟实现strcpy,strcat,strcat,memcpy,memmove
- Python基础教程:hasattr() getattr() setattr() 使用方法详解
- php txt,PHP规范TXT文件
- Struts2标签库和OGNL
- iis web.config 配置 经典模式_django部署在iis下,webconfig错误
- 浅谈NB-IoT应用场景及方案
- vlan 的三种模式
- mysql数据库去重
- CnOpenData中国高新技术企业专利统计数据
- matlab 矩阵与数比较,MATLAB 对矩阵中的数据进行大小比较
- 在线JSON转换成Excel文件工具
- 你和csdn是什么关系
- 工具:语雀导出MarkDown文档后图片修复
- 无法解析域名“cn.archive.ubuntu.com”。
- Oracle笔记之 的CMD命令
- maven系列:maven依赖讲解
- GB/T 25000.51-2016解读系列之产品说明要求
- 显示分辨率和图像分辨率_如何用任何图像制作高分辨率Windows 7图标