网络编程
两种方式:
TCP 面向有连接的,可靠的实现
UDP没有连接的,不可靠的实现,有可能数据丢包.
一个TCP的实现示例:
首先,编写服务端的socket,代码如下:
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class TCPServer {
public static void main(String[] args) {
try {
ServerSocket serverSocket = new ServerSocket(8888);
Socket socket = serverSocket.accept();
InputStream is = socket.getInputStream();
DataInputStream dis = new DataInputStream(is);
String str = dis.readUTF();
System.out.println(str);
DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
dos.writeUTF("Hello,Client Socket!----------");
dos.flush();
dos.close();
dis.close();
is.close();
socket.close();
serverSocket.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
其次,实现客户断的代码如下:
import java.net.*;
import java.io.*;
public class TCPClient {
/**
* @param args
*/
public static void main(String[] args) {
try {
Socket s = new Socket("localhost", 8888);
OutputStream os = s.getOutputStream();
DataOutputStream dos = new DataOutputStream(os);
dos.writeUTF("Hello,ServerSocket");
dos.flush();
DataInputStream dis = new DataInputStream(s.getInputStream());
Thread.sleep(5000);
System.out.println(dis.readUTF());
dis.close();
os.close();
s.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
以上只是实现了一个简单的连接,首先客户端连接到服务端后,先发出一个问候,然后服务端也返回一个问候信息!
两种方式:
TCP 面向有连接的,可靠的实现
UDP没有连接的,不可靠的实现,有可能数据丢包.
一个TCP的实现示例:
首先,编写服务端的socket,代码如下:
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class TCPServer {
public static void main(String[] args) {
try {
ServerSocket serverSocket = new ServerSocket(8888);
Socket socket = serverSocket.accept();
InputStream is = socket.getInputStream();
DataInputStream dis = new DataInputStream(is);
String str = dis.readUTF();
System.out.println(str);
DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
dos.writeUTF("Hello,Client Socket!----------");
dos.flush();
dos.close();
dis.close();
is.close();
socket.close();
serverSocket.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
其次,实现客户断的代码如下:
import java.net.*;
import java.io.*;
public class TCPClient {
/**
* @param args
*/
public static void main(String[] args) {
try {
Socket s = new Socket("localhost", 8888);
OutputStream os = s.getOutputStream();
DataOutputStream dos = new DataOutputStream(os);
dos.writeUTF("Hello,ServerSocket");
dos.flush();
DataInputStream dis = new DataInputStream(s.getInputStream());
Thread.sleep(5000);
System.out.println(dis.readUTF());
dis.close();
os.close();
s.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
以上只是实现了一个简单的连接,首先客户端连接到服务端后,先发出一个问候,然后服务端也返回一个问候信息!