首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

小程序

2012-03-13 
求一个小程序要求如下:1.c/s模式2.客户端发一个信息“holle” 时服务器端返回一个“holle”最好能用c编写其他

求一个小程序
要求如下:
1.c/s模式
2.客户端发一个信息“holle” 时 服务器端返回一个“holle”
最好能用c编写 其他语言也行

[解决办法]
msdn的例子:

client:

C/C++ code
#include <stdio.h>#include "winsock2.h"void main() {    // Initialize Winsock.    WSADATA wsaData;    int iResult = WSAStartup( MAKEWORD(2,2), &wsaData );    if ( iResult != NO_ERROR )        printf("Error at WSAStartup()\n");    // Create a socket.    SOCKET m_socket;    m_socket = socket( AF_INET, SOCK_STREAM, IPPROTO_TCP );    if ( m_socket == INVALID_SOCKET ) {        printf( "Error at socket(): %ld\n", WSAGetLastError() );        WSACleanup();        return;    }    // Connect to a server.    sockaddr_in clientService;    clientService.sin_family = AF_INET;    clientService.sin_addr.s_addr = inet_addr( "127.0.0.1" );    clientService.sin_port = htons( 27015 );    if ( connect( m_socket, (SOCKADDR*) &clientService, sizeof(clientService) ) == SOCKET_ERROR) {        printf( "Failed to connect.\n" );        WSACleanup();        return;    }    // Send and receive data.    int bytesSent;    int bytesRecv = SOCKET_ERROR;    char sendbuf[32] = "Client: Sending data.";    char recvbuf[32] = "";    bytesSent = send( m_socket, sendbuf, strlen(sendbuf), 0 );    printf( "Bytes Sent: %ld\n", bytesSent );    while( bytesRecv == SOCKET_ERROR ) {        bytesRecv = recv( m_socket, recvbuf, 32, 0 );        if ( bytesRecv == 0 || bytesRecv == WSAECONNRESET ) {            printf( "Connection Closed.\n");            break;        }        if (bytesRecv < 0)            return;        printf( "Bytes Recv: %ld\n", bytesRecv );    }    return;}
[解决办法]
lz只要把客户端代码

char sendbuf[32] = "Client: Sending data.";

修改成hello

char sendbuf[32] = "hello";

服务器端也做类似修改即可
[解决办法]
server端
Python code
#!/usr/bin/pythonimport socketHOST = '127.0.0.1'    PORT = 50007  s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)s.bind((HOST, PORT))s.listen(1)conn, addr = s.accept()print 'Connected by', addrwhile 1:        data = conn.recv(1024)        if not data: break        conn.send("server: " + data)conn.close() 

热点排行