1. 程式人生 > >C#與C/C++ Socket網路通訊

C#與C/C++ Socket網路通訊

C作為客戶端(傳送端)

                //建立套接字 	
                serSocket = socket(AF_INET, SOCK_DGRAM,0);
		if (serSocket == INVALID_SOCKET)
		{
			printf("socket伺服器建立失敗\n");
			return 0;
		}

		//繫結IP和埠  
		mysin.sin_family = AF_INET;
		mysin.sin_port = htons(CPORT);
		mysin.sin_addr.S_un.S_addr = inet_addr(serverip);			
		int cc=sendto(serSocket, "test", 4, 0, (SOCKADDR*)&mysin, nAddrlen);
                closesocket(serSocket);

C#作為接收端

            //初始化
            Socket ccc = new Socket();                
            EndPoint xxx = new EndPoint(IP,Port);
            ccc.bind(xxx);//此步是用於繫結自己本身的IP和Port 用於接收客戶端的資料
            //接收資料
            EndPoint recv = new EndPoint(IPAddress.Any,Port);
            if(recv.receivefrom(buff,ref recv);//此步成功之後 recv 裡面存放的即是客戶端的地址資料
            //獲得到客戶端地址之後 才能夠進行傳送操作
            ccc.sendto(buff,recv);//此時可以直接用recv 因為裡面存放的就是客戶端的地址了