socket-简单的C/S通信,但是结果不等于预期

问题描述

简单的C/S通信,但是结果不等于预期

server端代码:
#include
#include
#include
#include
#include
#include
#include

int main()
{

int fd,sd;
struct sockaddr_in mysock;
fd=socket(AF_INET,SOCK_STREAM,0);

memset(&mysock,0,sizeof(mysock));
mysock.sin_family=AF_INET;
mysock.sin_port=htonl(1025);
mysock.sin_addr.s_addr=htonl(INADDR_ANY);

bind(fd,(struct sockaddr*)&mysock,sizeof(mysock));
listen(fd,13);

while(1)
{
    puts("circle");
    char buf[1024];
    int n;
    sd=accept(fd,(struct sockaddr*)NULL,NULL);
    n=recv(sd,buf,sizeof(buf),0);
    //write(1,buf,n);
    buf[n]='';
    printf("%sn",buf);
    close(sd);
}
close(fd);
return 0;

}

 client端代码:

#include
#include
#include
#include
#include
#include
#include

int main(int argc,char **argv)
{

int cd;
char buf[]="hello c tongxin!";
struct sockaddr_in clisock;

cd=socket(AF_INET,SOCK_STREAM,0);

memset(&clisock,0,sizeof(clisock));
clisock.sin_family=AF_INET;
clisock.sin_port=htonl(1025);

// clisock.sin_addr.s_addr=argv[1];
inet_pton(AF_INET,argv[1],&clisock.sin_addr);

connect(cd,(struct sockaddr *)&clisock,sizeof(clisock));

send(cd,buf,strlen(buf),0);
close(cd);
return 0;

}

客户端连接发送一个字符串,但是服务端没反应,代码哪里有问题?

解决方案

客户端连接上到服务端的对应ip 端口了没。先看连接建立了没

解决方案二:

你应该判断socket建立的成功与否,在你的client端,connect绑定的第二个参数,应该是server的地址,看你写的怎么像是client端

解决方案三:

大侠,地址是从命令行输入的

时间: 2024-09-09 23:34:54

socket-简单的C/S通信,但是结果不等于预期的相关文章

服务器-C语言 socket 编写简单服务端客户端通信问题

问题描述 C语言 socket 编写简单服务端客户端通信问题 大家好,感谢你的回复. 我用c 写了一个socket通信的小程序,写好了服务端和客户端,可遇到个问题,就是每次启动客户端只能发送第一条消息,之后服务端就不能再收到消息了. Talk is cheak , show me the code. 服务端代码: #include<stdlib.h> #include<WinSock2.h> #pragma comment(lib,"ws2_32.lib") i

C语言实现socket简单通信实例_C 语言

本文实例讲述了C语言实现socket简单通信的方法,分享给大家供大家参考.具体实现方法如下: 服务器端代码如下: /* ============================================================================ Name : server.c Author : king Version : Copyright : Your copyright notice Description : Hello World in C, Ansi-st

Android基于socket实现的简单C/S聊天通信功能_Android

本文实例讲述了Android基于socket实现的简单C/S聊天通信功能.分享给大家供大家参考,具体如下: 主要想法:在客户端上发送一条信息,在后台开辟一个线程充当服务端,收到消息就立即回馈给客户端. 第一步:创建一个继续Activity的SocketClientActity类,包为com.pku.net 编写布局文件socketclient.xml,代码如下: <?xml version="1.0" encoding="utf-8"?> <Lin

详解C# Socket简单例子(服务器与客户端通信)_C#教程

这个例子只是简单实现了如何使用 Socket 类实现面向连接的通信. 注意:此例子的目的只是为了说明用套接字写程序的大概思路,而不是实际项目中的使用程序.在这个例子中,实际上还有很多问题没有解决,如消息边界问题.端口号是否被占用.消息命令的解析问题等.. 下面是两个程序的代码,(两个程序均为控制台程序) 先发服务端的(Server)完整代码如下: 引入命名空间: using System.Net.Sockets; using SystemNet; using SystemThreading; 完

socket简单通信

原文:socket简单通信 粗糙简略的初版,后续多加点功能权当练手 /* ============================================================================ Name : server.c Author : king Version : Copyright : Your copyright notice Description : Hello World in C, Ansi-style ===================

Android基于socket实现的简单C/S聊天通信功能

本文实例讲述了Android基于socket实现的简单C/S聊天通信功能.分享给大家供大家参考,具体如下: 主要想法:在客户端上发送一条信息,在后台开辟一个线程充当服务端,收到消息就立即回馈给客户端. 第一步:创建一个继续Activity的SocketClientActity类,包为com.pku.net 编写布局文件socketclient.xml,代码如下: <?xml version="1.0" encoding="utf-8"?> <Lin

socket客户端-php socket 客户端的多次通信

问题描述 php socket 客户端的多次通信 想用php做一个socket 客户端,可以实现一次连接,然后多次给服务端发消息.具体的想法是这样的: 做一个页面,这个页面上有个按钮和消息栏,点一下按钮就可以把消息栏的内容发送给服务端,再点一下再发送,而不需要重新连接,只是页面打开时跟服务端连接上. 这个要怎么实现呀?请各位大牛帮帮忙,小妹先谢过了. 附上socket类的代码. <?php /** 定义ip,和端口 */ define ( 'PHP_SOCKET_PORT', '6000' );

java网络编程-java socket实现两台电脑通信

问题描述 java socket实现两台电脑通信 大学生 菜鸟一个 现在自己电脑创了 发送端,接收端,可行 然后同样的代码,将发送端目的ip改为宿舍一台电脑ip,就没反应了.怎么回事啊? 防火墙吗?还是ip地址不对.两台机一个网,一个是192.168.1.102,一台是103 解决方案 没反应是什么意思,指发送端? 解决方案二: 原因很多..硬件软件的可能性都有. 都会在中间阻止或者消亡http请求..最好把你的代码,和网络环境说一下. 解决方案三: 端口看看有没有被占用吧 解决方案四: 试试

Android中使用socket使底层和framework通信的实现方法_Android

一般的native和framework的通信是通过jni,但是这一般只是framework调用native,native如果有消息要怎样通知上层 呢?android中GSP模块提供一种解决思路,但是实现有些复杂,这里介绍一种使用socket通信的方法可以使native和framework自 由通信,具体实现如下: android中使用jni对linux中的socket进行了封装.使用起来十分的方便. 由于android是基于linux的,所以linux的代码会在java之前先执行,所以一般nat

Android中使用socket使底层和framework通信的实现方法

一般的native和framework的通信是通过jni,但是这一般只是framework调用native,native如果有消息要怎样通知上层 呢?android中GSP模块提供一种解决思路,但是实现有些复杂,这里介绍一种使用socket通信的方法可以使native和framework自 由通信,具体实现如下: android中使用jni对linux中的socket进行了封装.使用起来十分的方便. 由于android是基于linux的,所以linux的代码会在java之前先执行,所以一般nat