Server与Client示例.
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
import org.w3c.dom.*;
import javax.xml.parsers.*;
public class TcpClient {
public static void main(String[] args) {
try {
// 下句执行后就已建立连接,它就是TCP ,我也不知道哪里指定的。
Socket socket;
socket = new Socket(InetAddress.getByName("172.16.140.1"),
4567);
System.out.println("已与Server连接上");
InputStream socketInputStream = socket.getInputStream();
OutputStream socketOutputStream = socket.getOutputStream();
DataInputStream socketReader =new DataInputStream(socketInputStream);
DataOutputStream socketWriter = new DataOutputStream(socketOutputStream);
int cycleCount=0,bufferSize=3000;
byte[] bytes=new byte[bufferSize];
while (cycleCount<20) {
//先写后读
socketWriter.write("hello!".getBytes("utf-8"));
socketReader.read(bytes);
String str=new String(bytes,"utf-8");
System.out.println("Server received:\t"+str);
cycleCount++;
Thread.sleep(2000);
if(cycleCount>20) break;
}
socketInputStream.close();
socketOutputStream.close();
socketReader.close();
socketWriter.close();
socket.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
/*已与Server连接上
Server received: welcome!
Server received: welcome!
*/
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class TCPServer {
public static void main(String[] args) throws IOException, InterruptedException {
//listening socket
ServerSocket serverSocket = new ServerSocket(4567);
System.out.println("server 已启动");
//注意,下行得到的communication socket,它的local port number与上面绑定的4567一致.这是一定的!
Socket socket = serverSocket.accept();// 阻塞等待消息
System.out.println("已于client连接上");
InputStream socketInputStream = socket.getInputStream();
OutputStream socketOutputStream = socket.getOutputStream();
DataInputStream socketReader =new DataInputStream(socketInputStream);
DataOutputStream socketWriter = new DataOutputStream(
socketOutputStream);
int cycleCount=0,bufferSize=3000;
byte[] bytes=new byte[bufferSize];
while (true) {
//先读后写
socketReader.read(bytes);
String str=new String(bytes,"utf-8");
System.out.println("Server received:\t"+str);
socketWriter.write("welcome!".getBytes("utf-8"));
cycleCount++;
Thread.sleep(2000);
if(cycleCount>20) break;
}
socketReader.close();
socketOutputStream.close();
socket.close();
serverSocket.close();
}
}
/*server 已启动
已于client连接上
Server received: hello!
Server received: hello!
*/