android一对多通信
16lz
2021-01-24
android端对端通信,一个服务器,多个Client。本来是想把自己的电脑跑服务器程序,关了防火墙也连接不上。发现校内网大部分采取DHCP,但我ifconfig发现idAdrress一直没有变,怎么回事?校内网大部分采取NAT技术,在专用网络内部使用专用IP地址,而仅在连接到因特网的路由器使用全球IP地址。所以不能够当作服务器来使用。 本地的java程序,本来打算只是测试一下能不能和client联通,client为android studio编写的简单demo。
import java.net.*; import java.io.*; public class chat{ // private PrintWriter write; // private BufferedReader read;//静态方法不能引用非静态变量BufferedReade //try模块以后再写 好多错误 public static void main(String[] args) throws IOException{ ServerSocket s=new ServerSocket(2000); System.out.println("服务器等待连接....");while(true){ Socket socket=s.accept();//必须有一个服务器,两个客户端的IP是变动的,没有中介无法连接 System.out.println("服务器已连接"); BufferedReader read; PrintWriter write; read = new BufferedReader(new InputStreamReader(socket.getInputStream())); write = new PrintWriter(new BufferedWriter(new OutputStreamWriter( socket.getOutputStream())),true); String line=read.readLine(); System.out.println(line); write.println(line);read.close();write.close();socket.close();}//无法访问的语句?:write.close(); 内存不能关闭 循环好多次? }}
客户端为:`import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
public class MainActivity extends AppCompatActivity {
private TextView textView;
@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textView=(TextView)findViewById(R.id.show); try { Socket socket=new Socket("172.28.59.107",2000); BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(socket.getInputStream())); String line=bufferedReader.readLine(); textView.setText(line); socket.close(); } catch (IOException e) { e.printStackTrace(); }}
}
`
更多相关文章
- android、apple PUSH 异同比较
- Android(安卓)流方式发送XML数据
- Android(安卓)客户端与服务器交互方式
- java与VC通信-socket
- 组播屏幕共享、Android屏幕共享开发小结
- Android(安卓)持续集成实践(一)——从0开始搭建 Gitlab 服务器
- 服务器端和客户端的上传代码
- android登录tomcat服务器并查找数据库的内容
- root 后的android 无线传屏(服务器端与客户端)