public void connet(){
// 步骤1:创建客户端 & 服务器的连接
// 创建Socket对象 & 指定服务端的IP及端口号
try {
socket=new Socket();
socket = new Socket("192.168.10.14", 55555);
socket.setSoTimeout(1000); //設超時
socket.isConnected();
Log.e("Debug","連接"+ socket.isConnected());
Toast.makeText(this, "連接"+socket.isConnected(), Toast.LENGTH_SHORT).show();
if( socket.isConnected()){
two();
}
} catch (IOException e) {
Log.e("Debug","IOException"+ socket.isConnected());
Toast.makeText(this, "IOException"+socket.isConnected(), Toast.LENGTH_SHORT).show();
e.printStackTrace();
}
// 判断客户端和服务器是否连接成功
}
// <-- 操作2:发送数据 到 服务器 -->
第一種方式
public void sennd1(){
// <-- 操作2:发送数据 到 服务器 -->
// 步骤1:从Socket 获得输出流对象OutputStream
// 该对象作用:发送数据
OutputStream outputStream = null;
try {
outputStream = socket.getOutputStream();
} catch (IOException e) {
e.printStackTrace();
}
// 步骤2:写入需要发送的数据到输出流对象中
for(int i = 0 ; i < 5 ; i++){
try {
outputStream.write(("Carson_Ho"+i+"\n").getBytes("utf-8"));
} catch (IOException e) {
e.printStackTrace();
}
}
// 特别注意:数据的结尾加上换行符才可让服务器端的readline()停止阻塞
// 步骤3:发送数据到服务端
try {
outputStream.flush();
} catch (IOException e) {
e.printStackTrace();
}
try {
// 步骤3:断开客户端 & 服务器 连接
outputStream.close();
// 断开 客户端发送到服务器 的连接,即关闭输出流对象OutputStream
br.close();
// 断开 服务器发送到客户端 的连接,即关闭输入流读取器对象BufferedReader
socket.close();
// 最终关闭整个Socket连接
} catch (IOException e) {
e.printStackTrace();
}
}
第二種方式
public void sennd2(){
// <-- 操作2:发送数据 到 服务器 -->
// 步骤1:从Socket 获得输出流对象OutputStream
// 该对象作用:发送数据
// 步骤2:写入需要发送的数据到输出流对象中
try {
//向服务器端发送数据
Map<String, String> map = new HashMap<String, String>();
map.put("name","aa");
map.put("img","bb");
map.put("op","cc"+"");
JSONObject json = new JSONObject(map);
String jsonString = "";
jsonString = json.toString();
//将String转化为byte[]
//byte[] jsonByte = new byte[jsonString.length()+1];
byte[] jsonByte = jsonString.getBytes();
DataOutputStream outputStream = null;
outputStream = new DataOutputStream(socket.getOutputStream());
System.out.println("发的数据长度为:"+jsonByte.length);
outputStream.write(jsonByte);
outputStream.flush();
System.out.println("传输数据完毕");
socket.shutdownOutput();
Toast.makeText(this, "Carson_ho", Toast.LENGTH_SHORT).show();
} catch (IOException e) {
e.printStackTrace();
}
}
public void service(){
// <-- 操作1:接收服务器的数据 -->
// 步骤1:创建输入流对象InputStream
InputStream is = null;
try {
is = socket.getInputStream();
} catch (IOException e) {
e.printStackTrace();
}
// 步骤2:创建输入流读取器对象 并传入输入流对象
// 该对象作用:获取服务器返回的数据
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
// 步骤3:通过输入流读取器对象 接收服务器发送过来的数据
try {
br.readLine();
} catch (IOException e) {
e.printStackTrace();
}
}
沒有留言:
張貼留言