socket点对点通信测试demo socket通信demo

没什么说的,直上源码。本是要实现android数据同步使用socket传输,好长时间不写socket了,主要测试下交互操作,网上的都是一次性请求就关闭的demo。
只做demo没有严格逻辑和代码优化,借鉴的自行修改。
=====================server=================:
package com.hoosen.ham.task.service;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class AsycnDataService implements Runnable{
publicstatic final String SERVERIP ="192.168.1.103";
publicstatic final int SERVERPORT = 8641;

public voidrun() {
try{
ServerSocketserverSocket = newServerSoc--ket(SERVERPORT);
System.out.println("server start ……");
while (true){
//等待接受客户端请求
Socketclient = serverSocket.accept();
System.out.println("receiving...");
try{
//接受客户端信息
BufferedReader in = new BufferedReader(
newInputStreamReader(client.getInputStream()));
//发送给客户端的消息
PrintWriterout = new PrintWriter(new BufferedWriter(
newOutputStreamWriter(client.getOutputStream())),true);
socket点对点通信测试demo socket通信demo

while(client.isConnected() && !client.isClosed()){
String str =in.readLine(); // 读取客户端的信息
if (str !=null ) {
System.out.println("received: '" + str +"'");
//设置返回信息,把从客户端接收的信息再返回给客户端
if("1".equals(str) ){
out.println("str");
}elseif("file".equals(str)){
out.println("filecontent");
}elseif("-1".equals(str)){
client.close();
System.out.println("closed!");
}
out.flush();
} else{
System.out.println("Not receiver anything fromclient!");
}
}
} catch(Exception e) {
e.printStackTrace();
} finally{
client.close();
}
}
} catch(Exception e) {
e.printStackTrace();
}
}

publicstatic void main(String [] args ) {
newThread(new AsycnDataService()).start();
}
public voiddown(){

}
}
=====================client=================:
package com.hoosen.ham.task.service;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;

public class AndroidAsysnDataDown {
Socketsocket = null;
PrintWriterout;
BufferedReader in;
booleanbRecive = true;
publicAndroidAsysnDataDown(){
init();
}

private voidinit(){
try {
InetAddress serverAddr =InetAddress.getByName("192.168.1.103");
socket = new Socket(serverAddr, 8641);
//将信息通过这个对象来发送给Server
out = new PrintWriter(newBufferedWriter(
newOutputStreamWriter(socket.getOutputStream())),
true);
//接收服务器信息
in = newBufferedReader(
newInputStreamReader(socket.getInputStream()));
} catch(UnknownHostException e) {
e.printStackTrace();
} catch(IOException e) {
e.printStackTrace();
}
}
public voidsend(String cmd){
if(socket.isConnected() ){
//把用户输入的内容发送给server
if(!socket.isOutputShutdown()){
out.println(cmd);
out.flush();
}
System.out.println("c:send " + cmd);
}
}
public voidrecive(){

try {
while(bRecive){
if(socket.isConnected() && !socket.isInputShutdown()){
//得到服务器信息
String msg=null;
if((msg =in.readLine()) != null ){
//在页面上进行显示
System.out.println("接收:"+msg);
if("str".equals(msg)){
send("file");
}else if("filecontent".equals(msg)){
bRecive=false;
}
}
}
}
} catch(Exception e) {
e.printStackTrace();
} finally {

}
}
public voidclose(){
System.out.println("关闭");
if(socket !=null){
try{
send("-1");
socket.close();
}catch(Exception e) {
e.printStackTrace();
}
}
}
publicstatic void main(String[] args) {
AndroidAsysnDataDown asd = new AndroidAsysnDataDown();
asd.send("1");
asd.recive();
asd.close();
}

}

  

爱华网本文地址 » http://www.aihuau.com/a/25101015/280544.html

更多阅读

松下lx3与lx5噪点对比测试-业余!! 业余函授

我不是专业摄影师也不是专业评测人员,但因为工作需要,对图片的质量很敏感;平日随时随地都有可能记录身边的事物。所以一直以来,总是纠结于买台什么样的相机。高端单反机器借着用过,见识了什么叫好的图像品质,但也见识了好图片与重量和体积

二十一世纪经济报道记者的采访手册 某记者在报道中指出

这是关于采访的小手册。我们努力让它做到实用,有助于记者完成自己的报道。但更重要的,它是提出问题,而不是给出所有的答案。在日常的报道中,快速的节奏如同切分音般把每天分开。哪一天该完成什么,成为记者心中暗藏的节奏。如果不能按时完

软件测试工程师薪资调查 软件测试工程师待遇

因修正错误而存在——软件测试工程师所属门派:IT业“假如存在没有任何错误的程序,那么世界也会不复存在。”因错误而存在,因修正错误而存在,这就是软件测试工程师的存在之道。虽然测试不是解决错误的根本举措,但却是必须的手段。软件测试

一个美国技术对快思聪与Control4的看法 美国快思聪

Control4与快思聪CRESTRON两家公司的方法控制非常不同。Control4,为核心,一个固定的配置系统与一个固定的用户体验,模块插入。快思聪有许多不同的软件工具,硬件和软件的清晰分离。Control4拥有强大的对ZigBee通信协议的偏见,快思聪有多

为什么聊天软件一般采用UDP协议 udp协议的应用层协议

TCP是美国国防部设计的两种传输协议之一,另一种是UDP。UDP是一种不可靠的网络服务,负载比较小,而TCP则是一种可靠的通信服务,负载相对而言比较大。TCP采用套接字(socket)或者端口(port)来建立通信。TCP给端口到端口通信提供了错误和流量控制

声明:《socket点对点通信测试demo socket通信demo》为网友小爷我有枪分享!如侵犯到您的合法权益请联系我们删除