您的位置:首页 > 编程语言 > Java开发

Java socket通讯(一)

2015-12-22 15:55 706 查看
写博客只是为了方便记忆,希望自己能够坚持下去。

在java jdk中,

TCP/IP协议 一般使用 ServerSocket,Socket 来建立网络通讯。

UDP协议 一般使用DatagramSocket,Datagrampacket,MulticastSocket来建立网络通讯。

TCP/IP 通讯协议的优点:通信可靠。保证了数据在传送过程中准确无误,即使在Intent暂时出现堵塞的情况下,TCP也能够保证通讯的可靠。

废话不多说,直接上例子。

Socket服务端:

public static void main(String[] args) {
try {
ServerSocket service = new ServerSocket(8888);// 创建端口8888的监听对象,监听客户请求(端口范围是0~65535)
while (true) {
Socket socket = service.accept();// 阻塞等待客户请求
OutputStream os=socket.getOutputStream(); //实例化一个输出流
os.write("服务端连接成功\n".getBytes("utf-8")); //向客户端输出内容
os.close();  //关闭输出流
socket.close();

}

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}


Socket客户端:

public static void main(String[] args) {

try {
Socket sk = new Socket("192.168.1.188", 4800);
sk.setSoTimeout(10000);// 设置请求响应时间

// 另一种请求socket服务端写法
// Socket sk = new Socket();
// sk.connect(new InetSocketAddress("192.168.1.188", 4800), 10000);

BufferedReader br = new BufferedReader(new InputStreamReader(
sk.getInputStream(), "utf-8")); //获取到服务端的输入流
String line = br.readLine();
System.out.println("来自服务端的消息:" + line);
br.close();
sk.close();

} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}


最后输出结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: