Socket与ServerSocket之间的通讯
socket是我们网络编程需要用到的编程接口(API),对TCP/IP也要提供可供程序员所做网路开发所用的接口,也就是Socket编程接口;HTTP是轿车,提供了封装或显示数据具体形式;Socket是发动机, 提供了网络通信的能力。有对Socket不怎么熟悉的小伙伴,可以查一下百度。
引用块内容
package person;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
/**
* 使用udp协议实现可以一直发送的数据
* 这里是客户端给我本机的服务器发信息
*
* @author Administrator
*
*/
public class SendSocket {
public static void main(String[] args) throws IOException {
DatagramSocket socket = new DatagramSocket();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = null;
while ((line = br.readLine()) != null) {
if ("over".equals(line))
break;
// 把读取的一行数据弄成数据报包
byte[] data = line.getBytes();
DatagramPacket packet = new DatagramPacket(data, data.length,
//这里传上自己的ip地址,其他人的我没有试,大家可以尝试一下;还有对应的端口号(可以随便输)。
InetAddress.getByName("这里输入ip地址"), 55555);
socket.send(packet);
}
}
}
package person;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
/**
* 使用udp协议实现可以一直接收的数据
* 这里是服务器接收客户端发送的信息
*
* @author Administrator
*
*/
public class ReceiveSocket {
public static void main(String[] args) throws IOException {
//得到识别码
DatagramSocket socket = new DatagramSocket(55555);
while (true) {
byte[] arr = new byte[1024];
DatagramPacket packet = new DatagramPacket(arr, arr.length);
socket.receive(packet);
String content = new String(packet.getData(), 0, packet.getLength());
String ip = packet.getAddress().getHostAddress();
System.out.println(ip + ":" + content);
}
//这里服务就不要关闭了,关闭了就不能连接客户端和接收信息了
// socket.close();
}
}