从事android客户端测试。微博:http://weibo.com/xingzunxi
发布新日志
-
2009-05-26 15:37:31
TCP提供的网络通讯接口与用户数据报协议(UDP)截然不同。TCP的特性使网络编程很具魅力,而且它删除了UDP的很多干扰部分(例如数据包的排序和丢失),简化了网络通讯。UDP关心的是数据包的传输,而TCP关注的是建立网络连接,并在网络连接中发送和接收字节流。
下边是编写的一个简单的Tcp通信代码,
服务器端:
package net;
/**
*
* @author xingdabang
*/
import java.io.*;
import java.net.*;
class Servicer implements Runnable{
Socket s;
public Servicer(Socket s){
this.s=s;
}
public void run(){
try{
InputStream ips=s.getInputStream();
OutputStream ps=s.getOutputStream();
BufferedReader br=new BufferedReader(new InputStreamReader(ips));
DataOutputStream dos=new DataOutputStream(ops);
while(true){
String strword=br.readLine();
if(strword.equalsIgnoreCase("quit"))
break;
String strecho=(new StringBuffer(strword).reverse()).toString();
dos.writeBytes(strword+" "+strecho+"\r\n");
System.out.println(strecho);
br.close();
dos.close();
s.close();
}
}catch(Exception e){
}
}
}
public class TcpServer {
public static void main(String args[]){
try{
ServerSocket ss=new ServerSocket(9000);
while(true){
Socket s=ss.accept();
new Thread(new Servicer(s)).start();
}
}catch(Exception e){}
}
}
客户端:
package net;
/**
*
* @author xingdabang
*/
import java.io.*;
import java.net.*;
public class TcpClient {
public static void main(String args[]){
try{
// if(args.length<2){
// System.out.println("budui");
// return;
// }
// Socket s=new Socket(InetAddress.getByName(args[0]),Integer.parseInt(args[1]));
Socket s=new Socket(InetAddress.getByName("192.168.136.220"),9000);
// System.out.println(InetAddress.getByName("192.168.136.220"));
InputStream ips=s.getInputStream();
OutputStream ps=s.getOutputStream();
BufferedReader brkey=new BufferedReader(new InputStreamReader(System.in));
DataOutputStream dos=new DataOutputStream(ops);
BufferedReader brnet=new BufferedReader(new InputStreamReader(ips));
while(true){
String strword=brkey.readLine();
System.out.println(strword);
dos.writeBytes(strword + System.getProperty("line.separator"));
if(strword.equalsIgnoreCase("quit"))
break;
else
System.out.println(brnet.readLine());
}
dos.close();
brnet.close();
brkey.close();
s.close();
}catch(Exception e){
System.out.println("buhao");
}
}
}
查看(685)
评论(0)
收藏
分享
管理
-
2009-05-25 15:58:40
UDP协议的全称是用户数据报,在网络中它与TCP协议一样用于处理数据包。在OSI模型中,在第四层——传输层,处于IP协议的上一层。 UDP有不提供数据报分组、组装和不能对数据包的排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的
下边是一个完整的小例子
UdpSend.java
package net;
/**
*
* @author xingdabang
*/
import java.net.*;
public class UdpSend {
public static void main(String args[])throws Exception{
DatagramSocket ds=new DatagramSocket();
String s="你好啊";
DatagramPacket dp=new DatagramPacket(s.getBytes(),s.getBytes().length,InetAddress.getByName("192.168.136.220"),3000);
ds.send(dp);
ds.close();
}
}
UdpRecv.java
package net;
/**
*
* @author xingdabang
*/
import java.net.*;
public class UdpRecv {
public static void main(String args[])throws Exception{
DatagramSocket ds=new DatagramSocket(3000);
byte[] buf=new byte[1024];
DatagramPacket dp=new DatagramPacket(buf,1024);
ds.receive(dp);
String strrev=new String(dp.getData(),0,dp.getLength());
System.out.println(strrev);
ds.close();
}
}
查看(509)
评论(0)
收藏
分享
管理