jpu*_*man 5 c sockets newline fgets
嗨,我对套接字编程很新,我编写了一个简单的客户端/服务器系统,通过套接字发送数据.我已经使它工作,以便我可以发送一个字符串到服务器并收到回复.
现在我试图让服务器识别从客户端发送的命令,但是我从客户端发送的所有内容都有一个换行符.我知道我可以从服务器端处理这个问题,但有没有办法从客户端删除换行符?
这是写作的代码:
printf("Please enter the message: ");
bzero(buffer,256);
fgets(buffer,255,stdin);
n = write(sockfd,buffer,strlen(buffer));
Run Code Online (Sandbox Code Playgroud)
是的,你的问题不是套接字正在添加新行(套接字永远不会处理或更改数据)而是调用fgets只是捕获你输入的换行符.您可以使用这个方便的一个衬垫将其移除:
buffer[strlen(buffer) - 1] = '\0';
Run Code Online (Sandbox Code Playgroud)
必须介于fgets和write之间.
为了更安全一点,最好使用
if('\n' == buffer[strlen(buffer) - 1])
buffer[strlen(buffer) - 1] = '\0';
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5524 次 |
| 最近记录: |