java网络编程中如何知道对方发消息过来了

java网络编程中如何知道对方发消息过来了?就是java如何监听套接字有消息发送过来了... java网络编程中如何知道对方发消息过来了?
就是java如何监听套接字有消息发送过来了
展开
 我来答
囧天孒囧
2014-03-06 · 超过10用户采纳过TA的回答
知道答主
回答量:17
采纳率:0%
帮助的人:21.4万
展开全部
可以参考一下这段代码

//1. 构造ServerSocket实例,指定服务端口。
ServerSocket servSock = new ServerSocket(servPort);


while(true)
{
   // 2.调用accept方法,建立和客户端的连接
           Socket clntSock = servSock.accept();
           SocketAddress clientAddress =    
                clntSock.getRemoteSocketAddress();
           System.out.println("Handling client at " + clientAddress);

    // 3. 获取连接的InputStream,OutputStream来进行数据读写
            InputStream in = clntSock.getInputStream();
            OutputStream out = clntSock.getOutputStream();

            while((recvMsgSize = in.read(receiveBuf)) != -1)
            {
                out.write(receiveBuf, 0, recvMsgSize);
            }   
    // 4.操作结束,关闭socket.
            clntSock.close();
}
hug374
2014-03-06 · TA获得超过961个赞
知道小有建树答主
回答量:2242
采纳率:0%
帮助的人:664万
展开全部
先从服务器端说起。服务器端先初始化Socket,然后与端口绑定(bind),对端口进行监听(listen),调用accept阻塞,等待客户端连接。在这时如果有个客户端初始化一个Socket,然后连接服务器(connect),如果连接成功,这时客户端与服务器端的连接就建立了。客户端发送数据请求,服务器端接收请求并处理请求,然后把回应数据发送给客户端,客户端读取回应的数据,显示在界面上。
主要是
在服务器端,主要是启动Socket和监听线程。

#define DEFAULT_PORT 2000

void CServerDlg::OnStart()

{

sockaddr_in local;

DWORD dwThreadID = 0;

local.sin_family=AF_INET;

//设置的端口为DEFAULT_PORT。

local.sin_port=htons(DEFAULT_PORT);

//IP地址设置成INADDR_ANY,让系统自动获取本机的IP地址。

local.sin_addr.S_un.S_addr=INADDR_ANY;

//初始化Socket

m_Listening = socket(AF_INET,SOCK_STREAM,0);

if(m_Listening == INVALID_SOCKET)

{

return ;

}

//将本地地址绑定到所创建的套接字上

if(bind(m_Listening,(LPSOCKADDR)&local,sizeof(local)) == SOCKET_ERROR )

{

closesocket(m_Listening);

return ;

}
//创建监听线程,这样也能响应界面上操作。

m_hListenThread = ::CreateThread(NULL,0,ListenThread,this,0,&dwThreadID);

m_StartBtn.EnableWindow(FALSE);

m_StopBtn.EnableWindow(TRUE);

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友fbd6e6400
2014-03-06 · TA获得超过238个赞
知道小有建树答主
回答量:129
采纳率:0%
帮助的人:96.3万
展开全部
当有客户端连接到服务端的时候会得到一个SOCKET对象,用这个对象取得输入流,并读取,如果客户端有消息过来,就会读到客户端发送过来的消息。
追问
对啊 这消息能自动显示么
追答
你能得到这个消息,后面不就是你想怎么办怎么办了么。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式