手机与电脑 socket通信
来源:互联网 发布:类似灵魂摆渡的网络剧 编辑:程序博客网 时间:2024/04/28 19:08
安卓手机与电脑Java客户端之间的socket通信,最终效果图如下:
下面给出代码:
电脑端:
public class Server { public static JTextArea textarea=new JTextArea(); JTextField text; ActionListener l=new ActionListener() { @Overridepublic void actionPerformed(ActionEvent e) {Send send=new Send();send.go();}};public static void main(String[] args) { Server s=new Server(); Accept a=new Accept(); Thread t=new Thread(a); s.go(); t.run(); }public void go(){JFrame frame=new JFrame();frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);JPanel panel=new JPanel();JButton button=new JButton("发送");button.addActionListener(l);textarea =new JTextArea(10,20);textarea.setLineWrap(true);text=new JTextField();text.addKeyListener(new KeyAdapter(){ public void keyPressed(KeyEvent e) { if(e.getKeyChar()==KeyEvent.VK_ENTER ) //按回车键执行相应操作; { Send send =new Send(); send.go(); } } });panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));JScrollPane scroller = new JScrollPane(textarea);scroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);scroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);panel.add(scroller);panel.add(text);frame.getContentPane().add(BorderLayout.CENTER,panel);frame.getContentPane().add(BorderLayout.SOUTH,button);frame.setSize(300,300);frame.setVisible(true);}class Send{public void go(){String str=text.getText().toString();if(str.equals("")||str==null) { text.setText("请输入后再发送!"); } else{ textarea.append("电脑->手机:\n"+str+"\n");try{Socket s=new Socket("192.168.191.3",20000);DataOutputStream out=new DataOutputStream(s.getOutputStream()); out.writeUTF(str); out.flush(); }catch(IOException ex){text.setText("没连上");} text.setText(null); }}}}public class Accept implements Runnable {@Overridepublic void run() {try{ServerSocket server =new ServerSocket(23000);while(true){Socket socket=server.accept();DataInputStream input=new DataInputStream(socket.getInputStream());String strget=input.readUTF(); Server.textarea.append("手机->电脑:\n"+strget+"\n");} }catch(IOException e){e.printStackTrace();}}}
手机端:
public class MainActivity extends Activity {EditText et=null;//编辑框Button bsend=null;//发送按钮LinearLayout ll;//布局protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);et=(EditText)findViewById(R.id.editText1);bsend=(Button)findViewById(R.id.button1);ll=(LinearLayout)findViewById(R.id.ll);bsend.setText("发送");bsend.setOnClickListener(new Button.OnClickListener() { public void onClick(View v) { String str=et.getText().toString(); if(str.equals("")||str==null) { Toast.makeText(MainActivity.this, "请输入信息后再发送", Toast.LENGTH_SHORT).show(); } else{ try { Socket socket = new Socket("192.168.191.1",23000); DataOutputStream out=new DataOutputStream(socket.getOutputStream()); out.writeUTF(str); out.flush(); AddText a=new AddText(); a.add("手机->电脑:\n"+str+"\n",-65536); et.setText(""); } catch (IOException ex) { Toast.makeText(MainActivity.this, "无法获取Ip!", Toast.LENGTH_SHORT).show(); } } } });Service s=new Service();Thread t=new Thread(s);t.start();}public boolean onCreateOptionsMenu(Menu menu) {getMenuInflater().inflate(R.menu.main, menu);return true;} class AddText{String str=null;int color=0;public void add(String str,int color){ TextView show =new TextView(MainActivity.this); ll.addView(show); show.setTextSize(15); show.setTextColor(color); show.setText(str);}} public Handler mHandler = new Handler() { public void handleMessage(Message msg) {super.handleMessage(msg);Bundle b = msg.getData(); AddText a1=new AddText(); a1.add("电脑->手机:\n"+msg.obj.toString()+"\n",-16776961); } };protected void onDestroy() {super.onDestroy();android.os.Process.killProcess(android.os.Process.myPid());} class Service implements Runnable{ public void run() { try{ ServerSocket server=new ServerSocket(20000); while(true){ Socket socket = server.accept(); DataInputStream input=new DataInputStream(socket.getInputStream()); Message message = new Message(); Bundle b = new Bundle(); message.obj=input.readUTF(); message.setData(b); MainActivity.this.mHandler.sendMessage(message); } } catch (IOException e) { e.printStackTrace(); } } } }
1 0
- 手机与电脑 socket通信
- android在wifi下手机与电脑的socket通信
- windowoPhone7.1 Socket编程-实现手机与电脑通信
- android在wifi下手机与电脑的socket通信
- socket学习之电脑手机通信
- Android手机通过socket与pc通信
- Android手机通过socket与pc通信
- Android手机通过socket与pc通信
- Android手机通过socket与pc通信
- Socket通信——Android手机客户端和电脑服务器通信小例子
- <WP7>手机通过USB与电脑服务端通过socket交互
- 手机socket通信/websocket
- WCE机器与电脑端通信(集图像同步、socket通信,RAP通信 )
- 手机端和电脑端基于UDP协议的socket通信
- 安卓开发笔记(三)------------使用手机关闭电脑(基于socket通信)
- Android 手机端与pc服务器之Socket通信
- 手机与pc USB连接adb socket通信
- android手机客户端与pc机进行socket通信
- 第07周:项目二:体验深复制函数
- 人生无非是让别人笑笑自己,再笑笑别人。
- 【亲测可用】Qt4.8.5+QtCreator2.8.0傻瓜安装...
- 互联网的世界安全吗?且行且珍惜
- 游戏逆向
- 手机与电脑 socket通信
- Android应用开发相关下载资源
- LeetCode || Permutations
- Java实现对于文件的多种操作,复制、删除、重命名、剪切文件、统计指定类型文件数等10个功能
- 郝斌数据结构(一):数组的模拟
- 潜罪犯
- 浅谈ADO.NET数据访问技术
- JAVA NIO 简介
- 第四周:多线程