Socket TCP协议

服务器端

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();
		}
	}
}


 


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值