java socket客户端服务端(简单示例)
上一篇 /
下一篇 2012-04-08 23:04:04
/ 个人分类:java
客户端程序
import java.net.Socket;
import java.net.SocketException;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class TCPEchoClient{
public static void main(String[] args) throws IOException{
if((args.length < 2) || (args.length > 3))
throw new IllegalArgumentException("Parameter(s): <Server> <Word> [Port]");
String server = args[0];
byte[] data = args[1].getBytes();
int servPort = (args.length == 3) ? Integer.parseInt(args[2]) : 7;
Socket socket = new Socket(server,servPort);
System.out.println("Connected to server ... sending echo string");
InputStream in = socket.getInputStream();
OutputStream ut = socket.getOutputStream();
out.write(data);
int totalBytesRcvd = 0;
int bytesRcvd;
while(totalBytesRcvd < data.length) {
if((bytesRcvd = in.read(data, totalBytesRcvd,data.length - totalBytesRcvd)) == -1)
throw new SocketException("Connection closed premaurely");
totalBytesRcvd += bytesRcvd;
}
System.out.println("Received: " + new String(data));
socket.close();
}
}
服务端程序
import java.net.*;
import java.io.*;
public class TCPEchoServer {
private static final int BUFSIZE = 32;
public static void main(String[] args) throws IOException {
if(args.length != 1)
throw new IllegalArgumentException("Parameter(s): <Port>");
int servPort = Integer.parseInt(args[0]);
ServerSocket servSock = new ServerSocket(servPort);
int recvMsgSize;
byte[] receiveBuf = new byte[BUFSIZE];
while(true) {
Socket clntSock = servSock.accept();
SocketAddress clientAddress = clntSock.getRemoteSocketAddress();
System.out.println("Handling client at " + clientAddress);
InputStream in = clntSock.getInputStream();
OutputStream ut = clntSock.getOutputStream();
while((recvMsgSize = in.read(receiveBuf)) != -1){
out.write(receiveBuf, 0, recvMsgSize);
System.out.println(new String(receiveBuf));
}
clntSock.close();
}
}
}
首先运行服务端
E:\socket>java TCPEchoServer 9080
然后运行客户端,向服务端发送test字符串,服务端再发回
E:\socket>java TCPEchoClient 192.168.1.100 test 9080
Connected to server ... sending echo string
Received: test
服务端的情况
E:\socket>java TCPEchoServer 9080
Handling client at /192.168.1.100:14479
test
收藏
举报
TAG: