服务器端
package com.example.socket3;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class Socket3 extends Activity {
private Button receiverbutton = null;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//定义布局文件
setContentView(R.layout.socket_activity);
//找到id和字符串
receiverbutton = (Button)findViewById(R.id.receiverbutotn);
receiverbutton.setText(R.string.receiver);
//设置监听按钮
receiverbutton.setOnClickListener(new ServerListener());
}
class ServerListener implements OnClickListener {
public void onClick(View arg0) {
//启动ServerThread线程
new ServerThread().start();
}
}
class ServerThread extends Thread {
public void run() {
//定义服务端对象
ServerSocket server = null;
try {
//定义服务端端口号为 123
server = new ServerSocket(123);
//接收客户端发送请求
Socket socket = server.accept();
//定义有关socket读取流对象inputStream
InputStream inputStream = socket.getInputStream();
byte buffer[] = new byte[1024];
int temp = 0;
//读取从客户端发送的数据到字节数组buffer,返回字节长度到temp,若字节不为空则输出字节数组buffer的内容
while ((temp = inputStream.read(buffer)) != -1) {
System.out.println(new String(buffer,0,temp));
}
} catch (Exception e) {
e.printStackTrace();
}
finally {
try {
//关闭服务端
server.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
客户端
package com.example.clinet2;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
public class TCPActivity {
public static void main() {
try {
//新建一个socket,传入服务器端的ip地址和端口号
Socket socket = new Socket("192.168.1.104",123);
//定义读取文件inputStream 对象
InputStream inputSream = new FileInputStream("F://liujian/word.txt");
//定义写入到socket的对象outputStream
OutputStream outputStream = socket.getOutputStream();
byte buffer[] = new byte[1024];
int temp = 0;
//读取文件到字节数组buffer,返回字节长度到temp,若不为空,则把字节数组buffer中的从0开始到temp的字节写入到流中
while ((temp = inputSream.read(buffer)) != -1) {
outputStream.write(buffer, 0, temp);
}
//关闭写入流
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
全部代码如下:
服务端
package com.example.socket3;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class Socket3 extends Activity {
private Button receiverbutton = null;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.socket_activity);
receiverbutton = (Button)findViewById(R.id.receiverbutotn);
receiverbutton.setText(R.string.receiver);
receiverbutton.setOnClickListener(new ServerListener());
}
class ServerListener implements OnClickListener {
public void onClick(View arg0) {
new ServerThread().start();
}
}
class ServerThread extends Thread {
public void run() {
ServerSocket server = null;
try {
server = new ServerSocket(123);
Socket socket = server.accept();
InputStream inputStream = socket.getInputStream();
byte buffer[] = new byte[1024];
int temp = 0;
while ((temp = inputStream.read(buffer)) != -1) {
System.out.println(new String(buffer,0,temp));
}
} catch (Exception e) {
e.printStackTrace();
}
finally {
try {
server.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
客户端
package com.example.clinet2;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
public class TCPActivity {
public static void main() {
try {
Socket socket = new Socket("192.168.1.104",123);
InputStream inputSream = new FileInputStream("F://liujian/word.txt");
OutputStream outputStream = socket.getOutputStream();
byte buffer[] = new byte[1024];
int temp = 0;
while ((temp = inputSream.read(buffer)) != -1) {
outputStream.write(buffer, 0, temp);
}
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}