代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:androaa">/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<EditText
android:
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Hello Server!"
/>
<Button
android:
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="发送信息到服务器"
/>
<TextView
android:
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="服务器发来的消息:"
/>
</LinearLayout>
程序代码
package ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
public class SocketActivity extends Activity {
/** Called when the activity is first created. */
Button BnSend;
EditText EtSend;
TextView TvRev ;
@Override
public void onCreate(Bundle savedInstanceState) {
(savedInstanceState);
setContentView();
BnSend = (Button) findViewById();//得到布局中的按钮引用
EtSend = (EditText) findViewById();
TvRev = (TextView) findViewById();
(BnSendListen);
}
private BnSendListen=new () {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Socket s=null;
DataOutputStream dout=null;
DataInputStream din =null;
try
{
s =new Socket("192.168.1.145",5000);
dout =new DataOutputStream(());
din =new DataInputStream (());
(50, 0); //实际中刚连上后发数据需要一定延时 确保双方链接初始化完成
(().toString());
(); //刷新缓存 发送数据
/*5秒内等待反馈*/
for(int i=0;i<10;i++)
{
if(()>0)
{
byte[] buffer=new byte[()];
(());
(buffer);
("服务器发来的消息:"+(new String(buffer)));
break;
}
else (500, 0);
};
}
catch(Exception e)
{
();
}
finally
{
try{
if(dout != null){
();
}
if(din != null){
();
}
if(s != null){
();
}
}
catch(Exception e){
();
}
}
}
};
}
设置权限
在manifest内加入
<uses-permission android:name=""></uses-permission>