之前一直会用sockets来实现emulator和PC进行通讯,卡了几天,最后请教其他人终于可以连接了。 错误原因是在IP和端口,IP要用本机IP(在CMD输入ipconfig,注意:每次开机本机IP都不同,ADSL是动态IP),端口用emulator的名称,5554或5556.java sever文件要另外建java工程运行,在android工程运行不了java(run application)
客户端代码:
package com.yarin.android.Examples_08_04;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class Activity01 extends Activity
{
private final String DEBUG_TAG = "Activity01";
private TextView mTextView=null;
private EditText mEditText=null;
private Button mButton=null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mButton = (Button)findViewById(R.id.Button01);
mTextView=(TextView)findViewById(R.id.TextView01);
mEditText=(EditText)findViewById(R.id.EditText01);
//登陆
mButton.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
Socket socket = null;
String message = mEditText.getText().toString() + "\r\n";
try
{
//创建Socket
socket = new Socket("116.29.27.138",5554); //查看本机IP,每次开机都不同
//socket=new Socket("192.168.1.110",50000);
//向服务器发送消息
PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())),true);
out.println(message);
//接收来自服务器的消息
BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String msg = br.readLine();
if ( msg != null )
{
mTextView.setText(msg);
}
else
{
mTextView.setText("数据错误!");
}
//关闭流
out.close();
br.close();
//关闭Socket
socket.close();
}
catch (Exception e)
{
// TODO: handle exception
Log.e(DEBUG_TAG, e.toString());
}
}
});
}
}
服务器端代码:
package com.yarin.android.Examples_08_04;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class Server implements Runnable
{
public void run()
{
try
{
//创建ServerSocket
ServerSocket serverSocket = new ServerSocket(5554);
while (true)
{
//接受客户端请求
Socket client = serverSocket.accept();
System.out.println("accept");
try
{
//接收客户端消息
BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
String str = in.readLine();
System.out.println("read:" + str);
//向服务器发送消息
PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(client.getOutputStream())),true);
out.println("server message");
//关闭流
out.close();
in.close();
}
catch (Exception e)
{
System.out.println(e.getMessage());
e.printStackTrace();
}
finally
{
//关闭
client.close();
System.out.println("close");
}
}
}
catch (Exception e)
{
System.out.println(e.getMessage());
}
}
//main函数,开启服务器
public static void main(String a[])
{
Thread desktopServerThread = new Thread(new Server());
desktopServerThread.start();
}
}
分享到:
相关推荐
Android Sockets和java sockets通信 的小例子。
SilverLight 2.0 和Sockets通讯视频教程 SilverLight 2.0 和Sockets通讯视频教程 SilverLight 2.0 和Sockets通讯视频教程 SilverLight 2.0 和Sockets通讯视频教程
AndroidQQ|sockets|聊天|客户端服务器|腾讯QQ
自己项目中的同步Sockets通讯代码(客户端)
android-websocket-example, 在android中,使用 web sockets进行同步同步的例子 Android推送同步示例这个简单的应用程序使用 web sockets实时与 web webapp同步。 它在后台运行,以零电池影响实时传递推送通知。在...
本例子 分为服务器接收数据程序 和 PC客户端发送数据程序 很好的解释了 Sockets的使用方法 希望能个大家带点帮助!
大家都知道定义一套完整的Socket通讯服务器和客户端以及网络通讯的协议是一件很麻烦的事情,而Cowboy.Sockets原理上也是使用Socket通讯为基础,帮助我们已经搭建好了通讯的服务器和客户端,省去我们自己搭建的过程,...
Windows Sockets规范定义并记录了如何使用API与Internet协议族(IPS,通常我们指的是TCP/IP)连接,尤其要指出的是所有的Windows Sockets实现都支持流套接口和数据报套接口. 应用程序调用Windows Sockets的API实现...
本源码是C/S模式写的聊天程序,可以实现,还有语音聊天呢。希望大家有意见的话请提出。谢谢
有UR与PC连接和传递位姿的详细步骤和注意事项 1.使用UR5机械臂 2.使用了电动夹爪 3.语言用C++(也可以使用C#) 4.附带部分参考文献
对Socket网络编程进行了详细讲解,包括各类常用API函数,便于查找。
1.2 BEKELEY套接口 1.3 MICROSOFT WINDOWS和针对WINDOWS的扩展 1.4 这份规范的地位 1.5 曾经作过的修改 第二章 使用WINDOWS SOCKETS 1.1编程 2.1 WINDOWS SOCKETS协议栈安装检查 2.2 ...
介绍了sockets的编程基础,适合快速入门学习和了解sockets
第一部分(第1~6章),提供了翔实的背景知识和框架方面的概念,借助于此框架,读者可理解WinSock的具体细节,包括Windows Sockets概述、OSI网络参考模型、TCP/IP协议簇中的协议和可用的服务、WinSock网络应用程序的...
WPF Communication through Sockets 基于socket的WPF通讯
Server_Client_Sockets_src
sockets通讯完整类,源码,包含运用
本书适应了Windows、Internet及计算机网络普及的潮流,介绍了一套在Windows 下网络编程的规范-Windows Sockets。...Windows Sockets网络编程指导和具体应用实例; Windows Sockets规范1.1版及2.0.8版库函数参考等。
C++ Sockets 2.3.9.9 修复了 HttpGetSocket 在获取内容字节为0时无法正常退出的问题,新编译器下一些 include 的问题。 C++ Sockets 是一个跨平台的 Sockets 库,实现包括 TCP、UDP、ICMP、SCTP 协议。已实现的应用...
Windows Sockets API 介绍.pdf