TCP 通信:1、创建socket/serviceSocket对象
2、根据socket创建输入输出流对象(创建信道)
3、往输入输出流读写数据
4、关闭输入输出流和socket
面向连接的通信,安全可靠,但是效率低
UDP 通信: 面向无连接的通信,发送的是数据报,效率快。
1、创建InetAddress对象
2、创建相应的DatagramPacket(接受和发送不一样)
3、创建相应的DatagramSocket
4、接收发送相应的数据
import java.net.ServerSocket;
import java.net.Socket;
import java.io.*;
/**
TODO ServiceSocket demo
@author 张文斌
@version 1.0 2014/9/1
*/
public class ServerSocketTest{
public static void main(String[] args){
Socket mySocket = null;
DataOutputStream os = null;
DataInputStream is = null;
ServerSocket serverSocket = null;
try{
serverSocket = new ServerSocket(3333);//创建serviceSocket
mySocket = serverSocket.accept();
is = new DataInputStream(mySocket.getInputStream());
os = new DataOutputStream(mySocket.getOutputStream());//得到一个服务器端的输入流对象
while(true){
String msg = "你好客户端";
os.writeUTF(msg);
Thread.sleep(1000);
System.out.println("服务器发送:"+msg);
System.out.println("服务器接收:"+is.readUTF());
}
}catch(InterruptedException e){
}catch(IOException e){
System.out.println("连接出错!!");
}
}
}
import java.net.Socket;
import java.io.*;
/**
TODO ClientSocket demo
@author 张文斌
@version 1.0 2014/9/1
*/
public class ClientSocketTest{
public static void main(String[] args){
DataOutputStream os = null;
DataInputStream is = null;
Socket socket = null;
try{socket = new Socket("127.0.0.1",3333);//创建serviceSocket
is = new DataInputStream(socket.getInputStream());
os = new DataOutputStream(socket.getOutputStream());//得到一个服务器端的输入流对象
while(true){
String msg = "你好主机";
os.writeUTF(msg);
Thread.sleep(1000);
System.out.println("客户端发送:"+msg);
System.out.println("客户端接收:"+is.readUTF());
}
}catch(InterruptedException e){
}catch(IOException e){
System.out.println("连接出错!!");
}
}
}
封装UDP: