java(eclipse)与VC++6.0 UDP通信

本文介绍了如何实现Java(Eclipse环境)与VC++6.0之间的UDP通信,首先通过一个基础实验作为起点,接着分享了在Android环境中进行相同通信时需要注意的权限设置,特别是在AndroidManifest.xml中添加INTERNET权限的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


为最终实现android与VC++6.0的通信,逐步进行多个实验,这里是第一个。
希望能找到同做这个方向的同仁一起讨论

java下的UDP、TCP通信参照

http://blog.youkuaiyun.com/wintys/article/details/3525643
http://blog.youkuaiyun.com/wintys/article/details/3525619

java下代码:

public class UDPSend {

	/**
	 * @param args
	 * @throws IOException 
	 */
	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
		
		DatagramSocket client=new DatagramSocket();
		
		String sendStr="Hello! I'm Client!";
		byte[] sendBuf;
		sendBuf=sendStr.getBytes();
		InetAddress addr=InetAddress.getByName("192.168.1.100");
		int port=8888;
		DatagramPacket sendPacket=new DatagramPacket(sendBuf,sendBuf.length,addr,port);
		client.send(sendPacket);
		
		
		byte[] recvBuf=new byte[100];
		DatagramPacket recvPacket=new DatagramPacket(recvBuf,recvBuf.length);
		client.receive(recvPacket);
		String recvStr=new String(recvPacket.getData(),0,recvPacket.getLength());
		System.out.println("------收到:"+recvStr);
		client.close();

	}

}

VC++下代码:

#include <stdio.h>
#include <winsock.h>
#include <stdlib.h>
void main()
{
	WSADATA wsaData;
	WORD wVersonRequested;
	int err;

	wVersonRequested = MAKEWORD(2, 2);	//SOCKET 版本信息
	err = WSAStartup(wVersonRequested, &wsaData);
	if(err != 0)
	{
		printf("WINDOWS SOCKET2.2初始化失败!\n");
		return;
	}

	SOCKET sock= socket(AF_INET, SOCK_DGRAM, 0);	//创建套接字

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

	bind(sock, (SOCKADDR*)&addrSrv, sizeof(SOCKADDR));	//绑定本地IP和端口号
	
	SOCKADDR_IN addrClient;
	int len = sizeof(SOCKADDR);

	/*循环接收*/
    while(1){            
	char recvBuf[1024]={0};
	sprintf(recvBuf, "%s\nReceived from IP: %s!\n", recvBuf, inet_ntoa(addrClient.sin_addr));
	printf("%s", recvBuf);
    }
	closesocket(sock);
	WSACleanup();
}

VC++可以成功接收到Hello! I'm Client!,并解析出发送端的IP地址

当使用android与VC++通信时,核心代码基本不变,唯一要注意的就是要在android工程的manifest中添加权限:
<uses-permission android:name="android.permission.INTERNET"/>

另外一些常用的权限见http://my.oschina.net/javagg/blog/17071

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值