A. 基于c语言,网络编程,服务器接收客户端1的信息发送给客户端2
char
buff2[1024*10];
int
receiveLen;
/*调用accept函数,等待客户端的连接*/
client_fd=accept(sockfd,(struct
sockaddr
*)&client_sockaddr,&sin_size
/*调用recv函数接收客户端的请求*/
recvbytes=recv(client_fd,buf,BUFFER_SIZE,0)
typedef
int
(WINAPI
ICEPUB_TCPSENDANDRECEIVETEXT)(char
*sendBuff,
int
sendBuffLen,char
*recvBuff,int
recvMaxLen,char*
serverIP,int
serverPort);
ICEPUB_TCPSENDANDRECEIVETEXT
*icePub_tcpSendAndReceiveText
=
0;
HINSTANCE
hDLLDrv
=
LoadLibrary
("icePubDll.dll");
if(hDLLDrv)
{
icePub_tcpSendAndReceiveText=(ICEPUB_TCPSENDANDRECEIVETEXT
*)
GetProcAddress
(hDLLDrv,"icePub_tcpSendAndReceiveText");
}
if(icePub_tcpSendAndReceiveText)
receiveLen=icePub_tcpSendAndReceiveText(buf,recvbytes),buff2,1024*10,"192.168.1.2",8000);
if(hDLLDrv)
FreeLibrary(hDLLDrv);
AfxMessageBox
(buff2);
B. 基于c语言,网络编程,服务器接收客户端1的信息发送给客户端2
char buff2[1024*10];
int receiveLen;
/*调用accept函数,等待客户端的连接*/
client_fd=accept(sockfd,(struct sockaddr *)&client_sockaddr,&sin_size
/*调用recv函数接收客户端的请求*/
recvbytes=recv(client_fd,buf,BUFFER_SIZE,0)
typedef int (WINAPI ICEPUB_TCPSENDANDRECEIVETEXT)(char *sendBuff, int sendBuffLen,char *recvBuff,int recvMaxLen,char* serverIP,int serverPort);
ICEPUB_TCPSENDANDRECEIVETEXT *icePub_tcpSendAndReceiveText = 0;
HINSTANCE hDLLDrv = LoadLibrary("icePubDll.dll");
if(hDLLDrv)
{
icePub_tcpSendAndReceiveText=(ICEPUB_TCPSENDANDRECEIVETEXT *)GetProcAddress(hDLLDrv,"icePub_tcpSendAndReceiveText");
}
if(icePub_tcpSendAndReceiveText)
receiveLen=icePub_tcpSendAndReceiveText(buf,recvbytes),buff2,1024*10,"192.168.1.2",8000);
if(hDLLDrv)
FreeLibrary(hDLLDrv);
AfxMessageBox(buff2);
C. (用C语言实现)客户端如何通过socket调用服务器函数
socket是用来和服务器通信的,无法直接调用服务器函数。
要实现功能,可以和服务器约定协议。
比如,在与服务器通信连接后,发送一系列标识符,最后加一个函数id,表示要求服务器调用约定的某一个函数。
服务器在接收到后,执行对应的函数,将结果返回给客户端即可。
D. 帮忙看下C语言的问题啊,我想实现的功能是网络传输数据,从客户端传到服务器,为什么传过去的数值都是0啊
char *itoa(int x,char*string1,int radix);
char *itoa(int y,char*string2,int radix);
这两行你写成声明了。应该用
itoa(x, string1, 10);
itoa(y, string2, 10);
E. 在c语言中客户端将自己的ip地址传给服务器,服务器怎样接收输出
将ip地址转成4个字节的char类型,再send,然后服务器解析出ip地址;
不过你要这个干吗?直接调用api就能获取客户端ip地址
F. (用C语言实现)客户端如何通过socket调用服务器函数
socket是用来和服务器通信的,无法直接调用服务器函数。
要实现功能,可以和服务器约定协议。
比如,在与服务器通信连接后,发送一系列标识符,最后加一个函数id,表示要求服务器调用约定的某一个函数。
服务器在接收到后,执行对应的函数,将结果返回给客户端即可。
G. 谁能用C语言写个最简单socket通信服务端和客户端示例
网络的Socket数据传输是一种特殊的I/O,Socket也是一种文件描述符。Socket也具有一个类似于打开文件的函数调用Socket(),该函数返回一个整型的Socket描述符,随后的连接建立、数据传输等操作都是通过该Socket实现的。
下面用Socket实现一个windows下的c语言socket通信例子,这里我们客户端传递一个字符串,服务器端进行接收。
【服务器端】
#include "stdafx.h"
#include <stdio.h>
#include <winsock2.h>
#include <winsock2.h>
#define SERVER_PORT 5208 //侦听端口
void main()
H. Linux C语言 C/S程序,客户端发送的数据和服务器端接收到的数据不一样,求解
估计你是用的tcp socket,导致“videlord”网友说的情况:对于tcp socket,send与recv不是对等的,recv时只要缓冲有数据就会收上来。简单说就是你send 4次,比如分别为10 10 10 10字节,对端可以一次recv到这40字节数据,也可以recv 40次、每次1字节。
解决办法有两种:
改用udp socket,send/recv自然对等了
继续用tcp socket,自己进行数据分段:比如自行约定在数据前约定4个字节用于描述数据长度,这样发送时,send 4+33字节,send 4+35字节;接收时,先获取描述长度的4字节获得长度,再按照长度接收数据(可能需要多次recv凑齐指定长度)。
I. Linux C语言 C/S程序,客户端发送的数据和服务器端接收到的数据不一样,求解
估计你是用的tcp
socket,导致“videlord”网友说的情况:对于tcp
socket,send与recv不是对等的,recv时只要缓冲有数据就会收上来。简单说就是你send
4次,比如分别为10
10
10
10字节,对端可以一次recv到这40字节数据,也可以recv
40次、每次1字节。
解决办法有两种:
1.
改用udp
socket,send/recv自然对等了
2.
继续用tcp
socket,自己进行数据分段:比如自行约定在数据前约定4个字节用于描述数据长度,这样发送时,send
4+33字节,send
4+35字节;接收时,先获取描述长度的4字节获得长度,再按照长度
接收数据
(可能需要多次recv凑齐指定长度)。