Re: TI-H: Program to test Ethernet<->Calc


[Prev][Next][Index][Thread]

Re: TI-H: Program to test Ethernet<->Calc




yea... THAT is why you use ANSI.... this is all windows specific for people
that want an easier way of doing sockets than making their own socket
header. So technically it is perfectly good to do this. Not all OS's can
have the same API stuff, or else all OS's would be the SAME!

At 07:07 AM 4/9/99 -0800, you wrote:
>
>>No, it is not true that windows will only compile for windows.
>
>Compile this for anything but windows.  :)
>
>
>#include <winsock.h>
>#include <stdlib.h>
>#include <stdio.h>
>#include <string.h>
>
>
>int main(int argc, char **argv) {
>char szBuf[256];
>struct sockaddr_in sin;
>WSADATA wsaData;
>SOCKET  s;
>int rc,i;
>
> 	if (WSAStartup(0x101,&wsaData) == SOCKET_ERROR)
>	{
>		printf("WSAStartup() failed, rc=%d\n",WSAGetLastError());
>		WSACleanup();
>		return -1;
>	}
>	sin.sin_addr.S_un.S_addr = inet_addr("192.168.1.2");
>	sin.sin_family = AF_INET;
>	sin.sin_port = htons(7);
> 	s = socket(AF_INET,SOCK_DGRAM,0);
>	if(s<0)
>	{
>		printf("Couldn't get a socket, rc=%d\n",WSAGetLastError());
>		WSACleanup();
>		return -1;
>	}
>
>	if(connect(s,(struct sockaddr*)&sin,sizeof(sin)) == SOCKET_ERROR)
>	{
>		printf("connect() failed, rc=%d\n",WSAGetLastError());
>		WSACleanup();
>		return -1;
>	}
>
>	for(i=0;i<5;i++)
>	{
>		wsprintf(szBuf,"Test %d",i+1);
>		rc = send(s,szBuf,strlen(szBuf),0);
>		if (rc == SOCKET_ERROR) {
>			printf("send() failed,rc=%d\n",WSAGetLastError());
>			WSACleanup();
>			return -1;
>		}
>		printf("Sent Data [%s]\n",szBuf);
>		rc = recv(s,szBuf,sizeof(szBuf),0 );
>		if (rc == SOCKET_ERROR) {
>			printf("recv() failed, rc=%d\n",WSAGetLastError());
>			closesocket(s);
>			WSACleanup();
>			return -1;
>		}
>		if (rc == 0) {
>			printf("Server closed connection\n");
>			closesocket(s);
>			WSACleanup();
>			return -1;
>		}
>		printf("Received %d bytes, data [%s] from the
>board\n",rc,szBuf);
>	}
>	closesocket(s);
>	WSACleanup();
>}
>
>
-Dan


Follow-Ups: References: