您的位置:首页 > 理论基础 > 计算机网络

java 网络编程 基于TCP ,UDP的网络传输

2014-06-15 14:12 856 查看

TCPClient.java

import java.io.*;
import java.net.*;
public class TCPClient{
public static void main(String []args){
Socket s = null;
DataOutputStream dos = null;
DataInputStream dis = null;
try{
s =  new Socket("127.0.0.1",8888);
dis = new DataInputStream(s.getInputStream());
dos = new DataOutputStream(s.getOutputStream());
dos.writeUTF("张燕茹是大傻逼,150****XXXX,求虐呀");
String str = null;
while((str=dis.readUTF())!=null){
System.out.println(str);
}
}catch(Exception e){
e.printStackTrace();
}
try{
dis.close();
dos.close();
s.close();
}catch(IOException e){
e.printStackTrace();
}

}
}

TCPServer

import java.net.*;
import java.io.*;
public class  TCPServer{
public static void main(String []args){
ServerSocket ss = null;
DataInputStream dis = null;
DataOutputStream dos = null;
Socket s = null;
try{
ss = new ServerSocket(8888);

while(true ){
try{
s = ss.accept();
System.out.println("one client coming"+s.getLocalAddress().getHostName());
dis = new DataInputStream(s.getInputStream());
dos = new DataOutputStream(s.getOutputStream());
System.out.println(dis.readUTF());
dos.writeUTF("from server hello");

}catch(Exception e){
e.printStackTrace();
}

}

}catch(Exception e ){
e.printStackTrace();
}
try{
dos.close();
dis.close();
s.close();
ss.close();
}catch(IOException e){
e.printStackTrace();
}
}
}


UDPCLient

import java.io.*;
import java.net.*;
public class UDPClient{
public static void main(String []args){
Long n = 10000L;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = null;
dos = new DataOutputStream(baos);
try{
dos.writeLong(n);//将一个 long 值写入输出流,该值由八个字节组成.此方法写入的、//字节可由 DataInput 接口的 readLong 方法读取,然后该方法将返回一个等于 v 的 long //值。
byte []buffer  = baos.toByteArray();		//构造一个缓冲区
DatagramPacket dp = new DatagramPacket(buffer,buffer.length,new InetSocketAddress("127.0.0.1",5678));
//构造数据报包,用来将长度为 length 的包发送到指定主机上的指定端口号。
DatagramSocket ds = new DatagramSocket(8888);
ds.send(dp);		//从此套接字发送数据报包。DatagramPacket 包含的信息指示://将要发送的数据、其长度、远程主机的 IP 地址和远程主机的端口号。
ds.close();
}catch(IOException e){
e.printStackTrace();
}

}
}

UDPServer

import java.io.*;
import java.net.*;
public class UDPServer{
public static void main(String []args){
try{
byte[] buffer = new byte[1024];
DatagramPacket dp = new DatagramPacket(buffer,buffer.length);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DatagramSocket ds = new DatagramSocket(5678);
while(true){
ds.receive(dp);
ByteArrayInputStream bais = new ByteArrayInputStream(buffer);
DataInputStream dis = new DataInputStream(bais);
System.out.println(dis.readLong());
}
}catch(IOException e){
e.printStackTrace();
}

}
}


建议多去查上面使用到函数的API
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息