在Ubuntu下实现本地套接字(socket)通信以及遇到的问题!

客户端:client.c

#include<stdio.h>
#include<sys/socket.h>
#include<sys/types.h>
#include<sys/un.h>
#include<unistd.h>
#include<stdlib.h>

int main(){
	int sockfd;
	int len;
	struct sockaddr_un address;
	int result;
	char ch='A';

	sockfd=socket(AF_UNIX,SOCK_STREAM,0);
	address.sun_family=AF_UNIX;
	strcpy(address.sun_path,"server_socket");
	len=sizeof(address);
	
	result=connect(sockfd,(struct sockaddr *)&address,len);
	if(result==-1){
		perror("oops:client1");
		exit(1);
	}

	write(sockfd,&ch,1);
	read(sockfd,&ch,1);
	printf("char from server = %c \n",ch);
	close(sockfd);
	exit(0);
}


服务端:server.c

#include<stdio.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<sys/un.h>
#include<unistd.h>

int m
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ubuntu上进行socket通信需要使用Python的socket模块。首先,你需要在客户端和服务器端分别创建socket对象,并指定通信的IP地址和端口号。然后,你可以使用`connect()`方法在客户端连到服务器端的IP地址和端口号。下来,你可以使用`sendall()`方法发送数据给服务器端,并使用`recv()`方法收服务器端发来的数据。最后,记得关闭连。在服务器端,你需要使用`bind()`方法绑定服务器的IP地址和端口号,并使用`listen()`方法开始监听。收到客户端的连后,使用`accept()`方法受连并返回一个新的套对象和客户端的IP地址。一旦连建立,你可以使用该套对象的`sendall()`方法将数据发送给客户端,并使用`recv()`方法收客户端发来的数据。最后,记得关闭连。 在示例代码中,`client.py`和`server.py`分别是客户端和服务器端的代码。在运行时,首先在终端运行`server.py`,然后在另一个终端运行`client.py`。这样就可以实现socket通信。 另外,如果你需要在Ubuntu上提升数据传输的实时性和稳定性,可以考虑使用巨帧(jumbo frame)来扩大最大传输单元(MTU)。你可以通过设置MTU的值为9000来实现,可以使用以下命令设置:`ifconfig eth0 mtu 9000`。请注意,每次开机都需要重新设置,你可以考虑设置开机自启动脚本。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [ubuntusocket通信](https://blog.csdn.net/qq_31918961/article/details/80575462)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [Linux/Ubuntu下多机间基于socket通信进行数据交互及C++代码实现](https://blog.csdn.net/qq_42091428/article/details/124515952)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值