感谢黑客X档案 是它的一本书让我有了编程的动力
我的目的是编一个远程控制的东西 正好选修的课程就是网络安全方面的
于是就查资料搞了很多基础的东西 毕竟我是才开始 所以不用强求
windows下面的网络编程在局域网中netbios比较高效 但是要使用Windows socket 运用于广域网(我的认识比较肤浅)
老师给的是unix下面的 但是我想在Windows下面
进入正题
/*服务端*/
#include <stdio.h>
#include <winsock2.h>
#pragma comment(lib, "ws2_32.lib")//调用ws2_32.lib动态链接库
void main() {
// 初始化
WSADATA wsaData;
int iResult = WSAStartup( MAKEWORD(2,2), &wsaData );
if ( iResult != NO_ERROR )
printf("Error at WSAStartup()/n");
// 建立socket
SOCKET server;
server = socket( AF_INET, SOCK_STREAM, IPPROTO_TCP );//用的tcp协议
if ( server == INVALID_SOCKET ) {
printf( "Error at socket(): %ld/n", WSAGetLastError() );
WSACleanup();
return;
}
// 绑定socket
sockaddr_in service;
service.sin_family = AF_INET;
service.sin_addr.s_addr = INADDR_ANY;//本机任意ip
service.sin_port = htons(830);//在830端口绑定
if ( bind( server, (struct sockaddr*) &service, sizeof(service) ) == SOCKET_ERROR ) {
printf( "bind() failed./n" );
closesocket(server);
return;
}
// 监听 socket
if ( listen( server, 1 ) == SOCKET_ERROR )
printf( "Error listening on socket./n");
// 接受连接
SOCKET AcceptSocket;
printf( "Waiting for a client to connect.../n" );
while (1) {
AcceptSocket = SOCKET_ERROR;
while ( AcceptSocket == SOCKET_ERROR ) {
AcceptSocket = accept( server, NULL, NULL );
}
printf( "Client Connected./n");
server = AcceptSocket;
break;
}
// 发送接受数据
int bytesSent;
int bytesRecv = SOCKET_ERROR;
char sendbuf[32] = "Server: Sending Data.";
char recvbuf[32] = "";
bytesRecv = recv( server, recvbuf, 32, 0 );
printf( "Bytes Recv: %ld/n", bytesRecv );
bytesSent = send( server, sendbuf, strlen(sendbuf), 0 );
printf( "Bytes Sent: %ld/n", bytesSent );
return;
}
这个源代码是根据网上的代码修改的 不知道出处 但是十分谢谢提供者 方便了我这种初学者
用telnet 127.0.0.1 830进行连接