- package test;
- import java.io.DataInputStream;
- import java.io.DataOutputStream;
- import java.io.IOException;
- import java.net.InetSocketAddress;
- import java.net.ServerSocket;
- import java.net.Socket;
- import java.net.SocketAddress;
- public class GprsServer {
- public static Socket socket;
- public static ServerSocket ss=null;
- public static DataInputStream in;
- public static DataOutputStream out;
- public static final int PORT=8100;
- public static void main(String arg[])
- {
- try
- {
- SocketAddress remoteAddr=new InetSocketAddress(PORT);
- ss = new ServerSocket();
- ss.bind(remoteAddr);//以上两句可用 ss = new ServerSocket(PORT);
- socket=ss.accept();//等待客户端连接,会阻塞进程
- in=new DataInputStream(socket.getInputStream());
- out=new DataOutputStream(socket.getOutputStream());
- while(true)
- {
- if(!socket.isConnected())
- {
- socket=ss.accept();//等待获取数据
- in=new DataInputStream(socket.getInputStream());
- out=new DataOutputStream(socket.getOutputStream());
- }
- byte[] result=new byte[712];
- byte wel[]=new byte[50];
- in.read(result);//会阻塞进程
- System.arraycopy(result,0,wel,0,14);
- String str=new String(wel,0,3);//若发送的字符长度小于数组长度,需限制转为string的长度,否则转换的成string有误
- System.out.println("接收数据:"+str);
- out.write(wel);
- System.out.println("发送数据:"+str);
- if(str.equalsIgnoreCase("bye"))
- break;
- }
- System.out.println("close!");
- socket.close();
- }
- catch(Exception e)
- {
- e.printStackTrace();
- }
- }
- }
TCP Socket服务端,监听本地端口。客户端需要知道服务端的IP和端口
转载于:https://blog.51cto.com/sdqdxiaoli/1066159