69,371
社区成员
发帖
与我相关
我的任务
分享
rec.c:
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#define error(T) {\
printf("ERROR:");\
printf(T);\
fputc ('\n',stdout);\
getch();\
return 0;\
}
WSADATA wsd;
SOCKET mySocket,acSocket;
struct sockaddr_in sa,sac;
int err;
char recvBuf[100];
char ipBuf[20];
short ip;
void myIP(){
printf ("本机信息:");
system ("cmd.exe /c ipconfig /all");
}
int main(){
myIP();
WSAStartup ( MAKEWORD(2,2), &wsd);
mySocket = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP);
sa.sin_family = AF_INET;
sa.sin_addr.s_addr = htonl (INADDR_ANY);
sa.sin_port = htons (8080);
bind (mySocket, (struct sockaddr *)&sa, sizeof(sa));
err = listen (mySocket, 1);
if(err == SOCKET_ERROR)error("listen failed!");
printf ("listen succeed!\n");
err = sizeof(sac);
acSocket = accept (mySocket, (struct sockaddr *)&sac, &err);
if(acSocket == INVALID_SOCKET)error("Accept failed!");
ip = sac.sin_addr.s_addr;
sprintf (ipBuf, "%3d.%3d.%3d.%3d", ip&0x000000ff, (ip>>8)&0x000000ff, (ip>>16)&0x000000ff, (ip>>24)&0x000000ff);
printf ("One computer connect us!: %s\n", ipBuf);
err = recv (acSocket, recvBuf, 100, 0);
if(err == SOCKET_ERROR)error("Receive error!");
printf ("%d bytes received :\n %s", err, recvBuf);
getch();
return 0;
}
send.c:
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#define error(T) {\
printf("ERROR:");\
printf(T);\
fputc ('\n',stdout);\
getch();\
return 0;\
}
WSADATA wsd;
SOCKET mySocket;
struct sockaddr_in sa;
int err;
char cpAddr[20];
char sendBuf[100];
int main(){
WSAStartup ( MAKEWORD(2,2), &wsd);
printf ("输入目标IP (例如:192.168.0.1):\n");
scanf ("%s", cpAddr);
fflush (stdin);
mySocket = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP);
sa.sin_family = AF_INET;
sa.sin_addr.s_addr = inet_addr (cpAddr);
sa.sin_port = htons (8080);
err = connect (mySocket, (struct sockaddr *)&sa, sizeof(sa));
if(err == SOCKET_ERROR)error("connet error!");
printf ("connet succeed!\n");
printf("Input:\n");
fgets (sendBuf, 100, stdin);
err = send (mySocket, sendBuf, strlen(sendBuf), 0);
if(err == SOCKET_ERROR)error("send failed!");
printf ("send %d bytes.\n", err);
getch();
return 0;
}