java的用戶端可以串連CPlus的服務端

來源:互聯網
上載者:User

標籤:

  今天做的實驗,用c++做的服務端,連接埠號碼為6000;用java做的用戶端,IP為127.0.0.1,port為6000,結果雙方可以串連上線;

貼代碼:

服務端:

#include <winsock2.h>
#include <iostream>
using namespace std;
SOCKET sockConn = NULL;
char content[100] = " ";
int flag = 1;
DWORD WINAPI MYrevc(LPVOID lp)
{
while(1)
{
char recvBuf[100];
if(flag==0)
{

recv(sockConn,recvBuf,100,0);///////////
}
if(recvBuf[0]!=0)
{
cout<<recvBuf<<endl;
//cout<<"MYrecv"<<endl;
flag = 1;
}
Sleep(1000);
}
return 0;
}
DWORD WINAPI MYsend(LPVOID lp)
{
cin>>content;
send(sockConn,content,strlen(content)+1,0);
flag = 0;
return 0;
}
int main()
{
WORD wVersionRequested;
WSADATA wsaData;
int err;

wVersionRequested = MAKEWORD( 1, 1 );

err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 )
{
return 0;
}

if ( LOBYTE( wsaData.wVersion ) != 1 ||
HIBYTE( wsaData.wVersion ) != 1 )
{
WSACleanup( );
return 0;
}
SOCKET sockSrv=socket(AF_INET,SOCK_STREAM,0);

SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
addrSrv.sin_family=AF_INET;
addrSrv.sin_port=htons(6000);

bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));

listen(sockSrv,5);

SOCKADDR_IN addrClient;
int len=sizeof(SOCKADDR);
sockConn=accept(sockSrv,(SOCKADDR*)&addrClient,&len);
cout<<"client has logined!"<<endl;
MYsend(NULL);
HANDLE rThread = CreateThread(NULL,0,MYrevc,NULL,0,NULL);//接收訊息的線程
CloseHandle(rThread);
while(1)
{
if(flag)
{
HANDLE sThread = CreateThread(NULL,0,MYsend,NULL,0,NULL);
CloseHandle(sThread);
}
Sleep(1000);
}
// closesocket(sockConn);
return 1;
}

 

用戶端:

package sock;

import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;

public class Sock {
public static void main(String[] args) {
try {
Socket sock = new Socket("127.0.0.1",6000);
System.out.println("Connect Successed!");
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

 

運行效果:

 

服務端:

用戶端:

 

 

 

 

java的用戶端可以串連CPlus的服務端

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.