33,311
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#include <winsock2.h>
#pragma comment(lib, "ws2_32.lib")
int main() {
u_long imode=1;
WSADATA wsaData;
int iResult = WSAStartup( MAKEWORD(2,2), &wsaData );
if ( iResult != NO_ERROR )
printf("WSAStartup()错误\n");
SOCKET server;
server = socket( AF_INET, SOCK_STREAM, IPPROTO_TCP );
if ( server == INVALID_SOCKET ) {
printf( "socket错误(): %ld\n", WSAGetLastError() );
WSACleanup();
}
iResult = ioctlsocket(server, FIONBIO, &imode);
if (server == INVALID_SOCKET) {
printf("Error at socket(): %ld\n", WSAGetLastError());
WSACleanup();
}
sockaddr_in service;
service.sin_family = AF_INET;
service.sin_addr.s_addr = inet_addr( "192.168.1.100" );
service.sin_port = htons( 27015 );
if ( bind( server, (SOCKADDR*) &service, sizeof(service) ) == SOCKET_ERROR ) {
printf( "bind失败\n" );
closesocket(server);
}
if ( listen( server, 1 ) == SOCKET_ERROR )
printf( "socket监听失败\n");
SOCKET AcceptSocket;
printf( "等待连接\n" );
while (1) {
AcceptSocket = SOCKET_ERROR;
while ( AcceptSocket == SOCKET_ERROR ) {
AcceptSocket = accept( server, NULL, NULL );
}
printf( "客户端已连接\n\n");
server = AcceptSocket;
break;
}
int recv1 = SOCKET_ERROR;
char recv2[32] = "";
while(1)
{
recv1 = recv( server, recv2, 32, 0 );
if(recv2[0]=='-'&&recv2[1]=='-')
break;
printf("接收:");
printf("%s\n",recv2);
}
}
#include <stdio.h>
#include <winsock2.h>
#pragma comment(lib, "ws2_32.lib")
int main() {
char ip[20];
int port;
u_long imode=1;
printf("输入地址:");
scanf("%s",ip);
WSADATA wsaData;
int iResult = WSAStartup( MAKEWORD(2,2), &wsaData );
if ( iResult != NO_ERROR )
printf("WSAStartup()错误\n");
SOCKET client;
client = socket( AF_INET, SOCK_STREAM, IPPROTO_TCP );
if ( client == INVALID_SOCKET ) {
printf( "socket()错误: %ld\n", WSAGetLastError() );
WSACleanup();
}
iResult = ioctlsocket(client, FIONBIO, &imode);
sockaddr_in clientService;
clientService.sin_family = AF_INET;
clientService.sin_addr.s_addr = inet_addr( ip );
clientService.sin_port = htons( 27015 );
if ( connect( client, (SOCKADDR*) &clientService, sizeof(clientService) ) == SOCKET_ERROR) {
printf( "连接失败,服务器未连接\n" );
WSACleanup();
}
int sent;
int recv1 = SOCKET_ERROR;
char send1[40] = "";
while(1)
{
printf("发送:");
scanf("%s",send1);
sent = send( client, send1, strlen(send1), 0 );
if(send1[0]=='-'&&send1[1]=='-')
break;
}
}