Click here to Skip to main content
15,919,500 members
Home / Discussions / Mobile
   

Mobile

 
QuestionCurious problem with CryptAcquireContext Pin
Colin Angus Mackay15-Nov-05 0:50
Colin Angus Mackay15-Nov-05 0:50 
AnswerRe: Curious problem with CryptAcquireContext Pin
cmk25-Nov-05 3:26
cmk25-Nov-05 3:26 
Questionudp failure in WindowsCE 4.2 Pin
DasdaDAS14-Nov-05 23:42
DasdaDAS14-Nov-05 23:42 
AnswerRe: udp failure in WindowsCE 4.2 Pin
vikas amin15-Nov-05 22:48
vikas amin15-Nov-05 22:48 
QuestionMultilingual Support for PPC2003? Pin
ahmadzafar11-Nov-05 23:28
ahmadzafar11-Nov-05 23:28 
QuestionHelp..., How to start programming database application for Win CE.Net using VB.Net correctly? Pin
Zakiah10-Nov-05 23:37
Zakiah10-Nov-05 23:37 
AnswerRe: Help..., How to start programming database application for Win CE.Net using VB.Net correctly? Pin
SpeBeeTo5-Dec-05 5:11
SpeBeeTo5-Dec-05 5:11 
Questionrecvfrom() - blocked in Win CE 4.2 Pin
DasdaDAS10-Nov-05 22:29
DasdaDAS10-Nov-05 22:29 
This call is waiting infinitely and the application never comes to next line.
I'm using UDP sockets. The data has been sent successfully to server. But I'm facing problem while receiving it. I tested on both smartphone emulator and real device(samsung). In both targets application is crashing when it reaches this line. Any idea why it's happening. Your help is greatly appreciated.

i = recvfrom(s1,packetbuffer,sizeof(packetbuffer),0,(SOCKADDR *)&addr,&cbRemoteAddrSize);

Zxczc

-- modified at 5:16 Tuesday 15th November, 2005FD_SETSIZE];
fd_set fdSockSet;
int nNumSocks, nNumSocksCount;
char pBuf[] = "WinCE Echo Test Packet";
int iReceiveStatus;

//Change these if required
#define USERNAME "sudhagar" //TODO
#define PWD "nopass" //TODO
#define INV_TO "sandeep" //TODO
#define IP_SERVER "172.29.12.154"//TODO
#define PORT_SERVER "5070" //TODO
TIMEVAL ReceiveTimeout;
int iRC = 0;
int iSendStatus = 0;
int SIPlib_main()
{
int i=0,j=0,k,infop1;
char *reg_dest,*inv_dest,*bhr= NULL ,*nnop1;
int x=0,reg_id=-1;
char tmp[200],locip[50];
unsigned int addr2=0;
osip_proxy_authorization_t *proxy_auth;
int cbXfer, cbTotalRecvd, cbRemoteAddrSize;
TCHAR *str;
SOCKET s,s1;
struct sockaddr_in addr,addr1;
char packetbuffer[1200]={{'\0'}},packetbuffer1[1000]={{'\0'}};
WSADATA dat ;

///////////////
SOCKET SIPRTPSOC;
struct sockaddr_in addr21;
char nextnon1[50];
char *buf2;
buf2=(char*)malloc(8*sizeof(char));
///////////////
//End of variable declarations

if(WSAStartup(MAKEWORD(2,2), &wsaData))
{
// WSAStartup failed
return 1;
}

sock = INVALID_SOCKET;

for(i = 0; i < FD_SETSIZE; i++)
SockServ[i] = INVALID_SOCKET;

// Get a list of available addresses to serve on

memset(&Hints, 0, sizeof(Hints));
Hints.ai_family = nFamily;
Hints.ai_socktype = nSockType;
Hints.ai_flags = AI_NUMERICHOST | AI_PASSIVE;
if(getaddrinfo(NULL, szPort, &Hints, &AddrInfo))
{
OutputDebugString(TEXT("ERROR: Couldn't get resolve the server name/address!"));
}
nNumSocksCount = 0;
for(AI = AddrInfo; AI != NULL; AI = AI->ai_next)
{
if (nNumSocksCount == FD_SETSIZE)
{
// getaddrinfo returned more addresses than we could use
break;
}

if((AI->ai_family == PF_INET) || (AI->ai_family == PF_INET6)) // only want PF_INET or PF_INET6
{
SockServ[nNumSocksCount] = socket(AI->ai_family, AI->ai_socktype, AI->ai_protocol);
if (SockServ[nNumSocksCount] != INVALID_SOCKET)
{
if (bind(SockServ[nNumSocksCount], AI->ai_addr, AI->ai_addrlen) == SOCKET_ERROR)
closesocket(SockServ[nNumSocksCount]);
else
{
OutputDebugString(
TEXT("Socket 0x%08x ready for connection with %hs family, %hs type, on port %hs\r\n"),
SockServ[nNumSocksCount],
(AI->ai_family == AF_INET) ? "AF_INET" : ((AI->ai_family == AF_INET6) ? "AF_INET6" : "UNKNOWN"),
(AI->ai_socktype == SOCK_STREAM) ? "TCP" : ((AI->ai_socktype == SOCK_DGRAM) ? "UDP" : "UNKNOWN"),
szPort);
nNumSocksCount++;
}
}
}
}

freeaddrinfo(AddrInfo);

if (nNumSocksCount == 0)
{
OutputDebugString(TEXT("ERROR: Unable to serve on any address. Error = %d\r\n"), WSAGetLastError());
goto Cleanup;
}
//Initializing socket s for transmission
s = socket(PF_INET,SOCK_DGRAM,IPPROTO_UDP);
memset(&addr,0,sizeof(struct sockaddr_in));
addr.sin_family = PF_INET;
addr.sin_addr.s_addr = inet_addr(IP_SERVER);//Server IP
addr.sin_port = htons((short )atoi(PORT_SERVER));//(5 0 7 0); Server Listen Port
//1st Transmission ( REGISTER )
i=sendto(s,reg_dest,strlen(reg_dest),0,(struct sockaddr *)&addr,sizeof(struct sockaddr_in));
NKDbgPrintfW(L"\nSent : %d bytes\n\n",i);
if(i != strlen(reg_dest))
{
OutputDebugString(TEXT("ERROR: Couldn't send the data! error = %d\r\n"), WSAGetLastError());
}
// Wait for incomming data/connections
nNumSocks = nNumSocksCount;
FD_ZERO(&fdSockSet);
for (i = 0; i < nNumSocks; i++) // want to check all available sockets
FD_SET(SockServ[i], &fdSockSet);
if (select(nNumSocks, &fdSockSet, 0, 0, NULL) == SOCKET_ERROR)
{
OutputDebugString(TEXT("ERROR: select() failed with error = %d\r\n"), WSAGetLastError());
goto Cleanup;
}
for (i = 0; i < nNumSocks; i++) // check which socket is ready to process
{
if (FD_ISSET(SockServ[i], &fdSockSet)) // proceed for connected socket
{
FD_CLR(SockServ[i], &fdSockSet);
if(nSockType == SOCK_STREAM)
{
cbRemoteAddrSize = sizeof(ssRemoteAddr);
sock = accept(SockServ[i], (SOCKADDR*)&ssRemoteAddr, &cbRemoteAddrSize);
if(sock == INVALID_SOCKET)
{
OutputDebugString(TEXT("ERROR: accept() failed with error = %d\r\n"), WSAGetLastError());
goto Cleanup;
}
OutputDebugString(TEXT("Accepted TCP connection from socket 0x%08x\r\n"), sock);
}
else
{
sock = SockServ[i];
OutputDebugString(TEXT("UDP data available on socket 0x%08x\r\n"), sock);
}
break; // Only need one socket
}
}
// Receive data from a client

cbTotalRecvd = 0;
do
{
cbRemoteAddrSize = sizeof(ssRemoteAddr);
cbXfer = recvfrom(sock, packetbuffer + cbTotalRecvd, sizeof(packetbuffer) - cbTotalRecvd, 0,
(SOCKADDR *)&ssRemoteAddr, &cbRemoteAddrSize);
cbTotalRecvd += cbXfer;
} while(cbXfer > 0 && cbTotalRecvd < sizeof(packetbuffer));

OutputDebugString(TEXT("SUCCESS - Received %d bytes from client %hs\r\n"), cbTotalRecvd, szRemoteAddrString);
Cleanup:
for(i = 0; i < nNumSocks && SockServ[i] != INVALID_SOCKET; i++)
closesocket(SockServ[i]);
if(sock != INVALID_SOCKET)
{
shutdown(sock, SD_BOTH);
closesocket(sock);
}
WSACleanup();
return 0;
}


Zxczc
QuestionVS2005 native code for WinCE.NET 4.2 Pin
besmel9-Nov-05 21:45
besmel9-Nov-05 21:45 
Questionremote login Pin
eero_p9-Nov-05 20:16
eero_p9-Nov-05 20:16 
Question.NET With Bluetooth Pin
Newbie_Toy9-Nov-05 17:46
Newbie_Toy9-Nov-05 17:46 
QuestionNeed help getting a screenshot from a ce device Pin
RBlyth7-Nov-05 22:37
RBlyth7-Nov-05 22:37 
Questionwindows pocket pc 2003 Pin
hytechpro_gaurav6-Nov-05 18:26
hytechpro_gaurav6-Nov-05 18:26 
QuestionPrinting in .net Compact Framework Pin
tkaub16-Nov-05 1:09
tkaub16-Nov-05 1:09 
AnswerRe: Printing in .net Compact Framework Pin
Jumba66663-Feb-06 10:44
Jumba66663-Feb-06 10:44 
QuestionFinding/Setting CPU speed XSCALE Pin
2hdass5-Nov-05 3:51
2hdass5-Nov-05 3:51 
Question.NET Compact Framework and Diaog Form Pin
smoitry3-Nov-05 12:26
smoitry3-Nov-05 12:26 
QuestionWM_DEVICECHANGE? Detecting new hardware under WinCE? Pin
Roland E.3-Nov-05 2:53
Roland E.3-Nov-05 2:53 
AnswerRe: WM_DEVICECHANGE? Detecting new hardware under WinCE? Pin
vikas amin15-Nov-05 21:42
vikas amin15-Nov-05 21:42 
AnswerRe: WM_DEVICECHANGE? Detecting new hardware under WinCE? Pin
kuykens23-Nov-05 22:09
kuykens23-Nov-05 22:09 
QuestionMicrocontroller programming and interfacing with sonar Pin
annp2-Nov-05 21:23
annp2-Nov-05 21:23 
QuestionSmartPhone 2003 DataGrid problem Pin
Carey Parks2-Nov-05 8:03
Carey Parks2-Nov-05 8:03 
QuestionBeginner needs help, any advise welcomed Pin
GODSP33D31-Oct-05 16:10
GODSP33D31-Oct-05 16:10 
AnswerRe: Beginner needs help, any advise welcomed Pin
MalikRizwan31-Oct-05 18:56
MalikRizwan31-Oct-05 18:56 
GeneralRe: Beginner needs help, any advise welcomed Pin
GODSP33D2-Nov-05 7:56
GODSP33D2-Nov-05 7:56 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.